CodeGym /행동 /Docker SELF /네트워크 생성 및 관리

네트워크 생성 및 관리

Docker SELF
레벨 17 , 레슨 1
사용 가능

2.1 주요 docker network 명령어

Docker의 네트워크는 컨테이너가 서로 및 외부 네트워크와 상호 작용할 수 있게 해. docker network 명령어는 네트워크를 생성, 구성 및 관리할 수 있는 유연한 옵션을 제공하면서 컨테이너의 네트워크 상호 작용을 격리하고 제어할 수 있게 해. 이 강의에서는 docker network 명령어와 그것들을 네트워크 관리에 사용하는 방법을 자세히 다뤄볼 거야.

주요 docker network 명령어:

  1. docker network create
  2. docker network ls
  3. docker network inspect
  4. docker network connect
  5. docker network disconnect
  6. docker network rm

네트워크 생성: docker network create 명령어

docker network create 명령어는 새로운 네트워크를 생성하는 데 사용돼. bridge, host, overlay, macvlan 같은 다양한 드라이버를 사용하여 네트워크를 생성할 수 있어.

bridge 드라이버로 네트워크를 생성하는 예제

Terminal


docker network create --driver bridge my_bridge_network 

overlay 드라이버로 네트워크를 생성하는 예제

Terminal


docker network create --driver overlay my_overlay_network 

macvlan 드라이버로 네트워크를 생성하는 예제

Terminal

docker network create --driver macvlan \
  --subnet=192.168.1.0/24   \
  --gateway=192.168.1.1 \
  -o parent=eth0 my_macvlan_network

2.2 네트워크 작업 명령어

1. 사용 가능한 네트워크 확인하기: 명령어 docker network ls

docker network ls 명령어는 Docker에서 생성된 모든 네트워크 목록을 표시해.

Terminal


docker network ls 

명령어 결과는 이렇게 보여:

Terminal


NETWORK ID          NAME                DRIVER              SCOPE
0e7e2d58fe94        bridge              bridge              local
9c84fdfc69ee        host                host                local
71cfb6a79d9e        none                null                local

2. 네트워크 정보 확인하기: 명령어 docker network inspect

docker network inspect 명령어는 특정 네트워크에 대한 세부 정보를 얻을 수 있어, 연결된 컨테이너, 서브넷 및 게이트웨이 설정 포함.

사용 예:

Terminal


docker network inspect my_bridge_network 

명령어 결과는 JSON 형식으로 네트워크 정보를 포함할 거야:

JSON

[
    {
        "Name": "my_bridge_network",
        "Id": "0e7e2d58fe94",
        "Created": "2021-01-01T00:00:00.000000000Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {
            "container_id": {
                "Name": "my_container",
                "EndpointID": "6c52f8c75c1e",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

3. 컨테이너 네트워크에 연결하기: 명령어 docker network connect

docker network connect 명령어는 이미 실행 중인 컨테이너를 기존 네트워크에 연결하는 데 사용돼.

사용 예:

Terminal


docker network connect my_bridge_network my_container 

4. 컨테이너 네트워크에서 분리하기: 명령어 docker network disconnect

docker network disconnect 명령어는 컨테이너를 네트워크에서 분리하는 데 사용돼.

사용 예:

Terminal


docker network disconnect my_bridge_network my_container 

5. 네트워크 삭제하기: 명령어 docker network rm

docker network rm 명령어는 네트워크를 삭제하는 데 사용돼. 모든 연결된 컨테이너를 분리한 후에만 네트워크를 삭제할 수 있다는 점을 유의해.

사용 예:

Terminal


docker network rm my_bridge_network 

2.3 docker network 명령어 예제

docker network 명령어 사용 예제

예제 1: bridge 네트워크 생성 및 사용

네트워크 생성:

Terminal

docker network create --driver bridge my_bridge_network 

컨테이너 실행 및 네트워크 연결:

Terminal

docker run -d --name container1 --network my_bridge_network nginx

docker run -d --name container2 --network my_bridge_network redis 

네트워크 확인:

Terminal

docker network inspect my_bridge_network 

docker network inspect 명령어 출력은 네트워크에 대한 자세한 정보를 JSON 형식으로 제공해 줄 거야. 출력을 더 읽기 쉽게 하기 위해서는 jq 유틸리티를 사용할 수 있어:

Terminal

docker network inspect my_bridge_network | jq

이 도구는 네트워크에 대한 데이터, 예를 들어 연결된 컨테이너, IP 주소, 서브넷 설정 등을 필터링하고 구조적으로 확인할 때 유용해.

예제 2: 컨테이너 연결 및 연결 해제

컨테이너 실행:

Terminal

docker run -d --name my_container nginx 

컨테이너를 네트워크에 연결:

Terminal

docker network connect my_bridge_network my_container 

컨테이너를 네트워크에서 분리:

Terminal

docker network disconnect my_bridge_network my_container 
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION