Q1. Docker는 데이터를 안전하게 존속시킬 수 있는 방식으로 volume, bind mounts, tmpfs의 3가지 방식 제공
Q2. 도커 컨테이너는 기본적으로 eth0와 lo 네트워크 인터페이스를 가짐.
Docker 볼륨과 데이터 관리
도커의 이미지로 컨테이너를 생성하면 이미지는 읽기 전용으로 쓰기가 불가능.
-> 컨테이너 계층에 변화되는 데이터들이 저장되는데, 이 경우 컨테이너가 삭제되면 그동안 저장된 운용데이터들이 함께 삭제
볼륨
- 도커 컨테이너에 의해 생성되고 사용되는 데이터를 영속하기 위해 선호되는 메커니즘
- 바인드 마운트는 호스트 머신의 디렉토리 구조에 따라 달라지지만, 볼륨은 도커에 의해 완전히 관리됨
장점
- Mount시 이름을 명시적으로 지정해 사용 가능 / 익명 가능
- 익명 볼륨은 처음 마운드 시 명시적으로 이름이 부여되지 않으므로 도커는 주어진 도커 호스트 내에서 고유한 임의의 이름을 해당 볼륨에 부여
- 이름이 지정된 방식과 상관 없이 볼륨은 동일한 방식으로 작동
- 원격 호스트와 Cloud Provider가 데이터를 저장할 수 있는 볼륨 드라이버 사용 지원
bind mount
tmpfs mount
Docker 네트워크 구축
도커 네트워크 구조
- 컨테이너는 기본적으로 eth0와 lo 네트워크 인터페이스를 가짐
- 컨테이너는 내부 IP를 순차적으로 할당해 컨테이너가 재시작 될 때마다 변경될 수 있음
- 만약 외부와 연결해야 할 경우 호스트에 veth(=virtual eth)라는 네트워크 인터페이스를 생성해 컨테이너의 eth와 연결.
-> veth 인터페이스는 사용자가 직접 생성할 필요 없이 도커 엔진에 의해 자동 생성
- veth 인터페이스 뿐만 아니라 docker()라는 브리지도 있는데, 이는 veth 인터페이스와 바인딩되어 호스트의 eth 인터페이스와 연결
Summary