Docker Compose에서 네트워크 모드 추가
기본적으로 애플리케이션에서 Docker Compose에 의해 단일 네트워크가 생성되고 거기에 각 컨테이너를 서비스로 추가합니다. 네트워크의 모든 컨테이너는 단일 네트워크의 컨테이너에서 액세스하고 찾을 수 있습니다.
Docker Compose에서 네트워크 모드를 정의하여 네트워크를 구성할 수 있습니다. 이 기사에서는 Docker Compose에서 네트워크 모드를 사용하여 네트워킹을 정의하고 설정하는 방법에 대해 설명합니다.
Docker에서 네트워크 정보 수집
특정 컨테이너나 서비스를 통과하는 네트워킹 모드를 구성하려면 먼저 추가 정보를 수집해야 합니다. docker network ls
명령을 실행하면 현재 Docker 네트워크를 나열할 수 있습니다.
아래 출력과 유사해야 합니다.
출력:
NETWORK ID NAME DRIVER
17cc61428fef bridge bridge
098522f7fce0 sample_default bridge
1ce3c472afc6 test_default bridge
8fd07e456e6c host host
3b5787919641 none null
이 명령은 위에 제시된 이전 명령을 통해 컨테이너, 서비스 또는 네트워크의 이름이나 ID를 알아야 하는 경우에 유용합니다.
Docker Compose에서 네트워크 모드 구성
Docker Compose 버전 3에서는 network_mode:
매개변수와 해당 값을 제공하여 YAML 파일에서 네트워크 모드를 사용할 수 있습니다. 따라서 version:
매개 변수 및 3
또는 3.0
값과 함께 사용 중인 Docker Compose의 버전을 지정해야 합니다.
예:
version: "3"
services:
app:
network_mode: "host"
위의 예에서는 네트워크 모드로 호스트
예제를 사용했지만 대신 컨테이너 또는 서비스를 지정할 수 있습니다. Docker 공식 문서에서 서비스의 네트워크 모드를 정의할 때 사용할 수 있는 여러 값은 다음과 같습니다.
예:
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"
이전에 정보를 수집했으므로 네트워크 모드를 정의할 때 네트워크 이름이나 ID를 사용할 수 있습니다.
예:
network_mode: "container:sample_default"
network_mode: "container:1ce3c472afc6"
Docker Swarm에서 네트워크 모드 구성
Docker 애플리케이션을 실행하는 물리적 또는 가상 머신의 모음을 Docker Swarm이라고 합니다. Docker Swarm이라는 컨테이너 오케스트레이션 솔루션을 통해 사용자는 다양한 호스트 시스템에 분산된 많은 컨테이너를 제어할 수 있습니다.
머신 그룹이 함께 클러스터링되면 익숙한 Docker 명령을 계속 실행할 수 있지만 이제 클러스터의 장치가 이를 수행합니다.
불행하게도 Docker Compose와 Swarm은 잘 섞이지 않습니다. 따라서 network_mode
매개변수를 사용하는 대신 다음과 같은 networks
매개변수를 사용하여 수동으로 네트워크를 정의해야 합니다.
예:
version: "3.0"
services:
app:
networks:
- host
networks:
host:
name: [Your Network Mode Value]
external: true
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn