[docker] docker 네트워크 - 개요 (1)
카테고리: docker
태그: docker
컨테이너 네트워킹
컨테이너에는 IP주소, 게이트웨이, 라우팅 테이블, DNS 서비스 및 기타 네트워킹 세부 정보가 있는 네트워크 인터페이스가 있습니다.
포트 게시
기본적으로 컨테이너를 실행할 때 Docker는 외부에 포트를 게시하지 않습니다. 컨테이너에서 외부에 포트를 게시하려면 --publish 또는 -p 플래그를 사용해야 합니다. 이렇게 하면 컨테이너 포트를 Docker 호스트의 포트에 매핑하는 방화벽 규칙이 생성됩니다.
-p 8080:80: 컨테이너의 TCP 포트 80을 Docker 호스트의 TCP 8080 포트에 매핑합니다.-p 192.168.1.100:8080:80: 컨테이너의 TCP 포트 80을 Docker 호스트의 192.168.1.100:8080 IP/Port에 매핑합니다.-p 8080:80/udp: 컨테이너의 UDP 포트 80을 Docker 호스트의 UDP 8080 포트에 매핑합니다.-p 8080:80/tcp -p 8080:80/udp: 컨테이너의 TCP 포트 80을 Docker 호스트의 TCP 8080 포트에 매핑하고 컨테이너의 UDP 포트 80을 Docker 호스트의 UDP 8080 포트에 매핑합니다.
IP 주소 및 호스트 이름
- 기본적으로 컨테이너에는 연결된 Docker network에 대한 IP 주소가 할당됩니다. IP 주소는 네트워크에 할당된 IP 풀에서 제공함으로 Docker 데몬은 각 컨테이너에 대한 DHCP 서버 역할을 한다고 볼 수 있습니다.
- 각 네트워크에는 기본 서브넷 마스크와 게이트웨이가 있습니다.
네트워크 및 IP 지정
--network: 컨테이너가 실행될 때 해당 플래그를 사용하면 지정된 네트워크를 사용할 수 있습니다.--ip, --ip6: 컨테이너가 실행될 때 해당 플래그를 사용하면 컨테이너에 할당될 IP 주소를 지정할 수 있습니다.
네트워크 탈부착
docker network connect를 사용하여 실행 중인 컨테이너에 여러 네트워크를 연결할 수 있습니다.docker network disconnect를 사용하여 실행 중인 컨테이너에 부착된 여러 네트워크 연결을 해제할 수 있습니다.
호스트 이름
- 기본적으로 Docker 컨테이너의 호스트 이름은 컨테이너 ID입니다.
--hostname를 사용하면 호스트 이름을 지정할 수 있습니다. docker network connect를 사용하여 기존 네트워크에 연결할 때--alias플래그를 사용하여 해당 네트워크에서 컨테이너에 대한 별칭을 지정할 수 있습니다.
DNS
- 기본 브리지 네트워크를 사용하는 컨테이너는 호스트의 /etc/resolv.conf 구성 파일의 복사본을 가져오는 반면 사용자 지정 네트워크를 사용하는 컨테이너는 외부 DNS 조회를 호스트에 구성된 DNS 서버로 전달하기 위해 Docker의 내장 DNS 서버를 사용합니다.
- 기본적으로 호스트의 /etc/hosts 파일은 컨테이너에 상속되지 않습니다. hosts 파일에 host 매핑을 추가하려면
--add-host플래그를 사용을 참고하세요. - 컨테이너의 DNS 서버를 지정하려면
--dns플래그를 사용합니다.
📌출처
👍 개인 공부 기록용 블로그입니다. 오류나 조언이 있으시면 언제든지 댓글 혹은 메일로 남겨주시면 감사하겠습니다! 😄
댓글남기기