2.1 주요 docker network
명령어
Docker의 네트워크는 컨테이너가 서로 및 외부 네트워크와 상호 작용할 수 있게 해. docker network
명령어는 네트워크를 생성, 구성 및 관리할 수 있는 유연한 옵션을 제공하면서 컨테이너의 네트워크 상호 작용을 격리하고 제어할 수 있게 해. 이 강의에서는 docker network
명령어와 그것들을 네트워크 관리에 사용하는 방법을 자세히 다뤄볼 거야.
주요 docker network
명령어:
- docker network create
- docker network ls
- docker network inspect
- docker network connect
- docker network disconnect
- docker network rm
네트워크 생성: docker network create
명령어
docker network create
명령어는 새로운 네트워크를 생성하는 데 사용돼. bridge
, host
, overlay
, macvlan
같은 다양한 드라이버를 사용하여 네트워크를 생성할 수 있어.
bridge
드라이버로 네트워크를 생성하는 예제
docker network create --driver bridge my_bridge_network
overlay
드라이버로 네트워크를 생성하는 예제
docker network create --driver overlay my_overlay_network
macvlan
드라이버로 네트워크를 생성하는 예제
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에서 생성된 모든 네트워크 목록을 표시해.
docker network ls
명령어 결과는 이렇게 보여:
NETWORK ID NAME DRIVER SCOPE
0e7e2d58fe94 bridge bridge local
9c84fdfc69ee host host local
71cfb6a79d9e none null local
2. 네트워크 정보 확인하기: 명령어 docker network inspect
docker network inspect
명령어는 특정 네트워크에 대한 세부 정보를 얻을 수 있어, 연결된 컨테이너, 서브넷 및 게이트웨이 설정 포함.
사용 예:
docker network inspect my_bridge_network
명령어 결과는 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
명령어는 이미 실행 중인 컨테이너를 기존 네트워크에 연결하는 데 사용돼.
사용 예:
docker network connect my_bridge_network my_container
4. 컨테이너 네트워크에서 분리하기: 명령어 docker network disconnect
docker network disconnect
명령어는 컨테이너를 네트워크에서 분리하는 데 사용돼.
사용 예:
docker network disconnect my_bridge_network my_container
5. 네트워크 삭제하기: 명령어 docker network rm
docker network rm
명령어는 네트워크를 삭제하는 데 사용돼. 모든 연결된 컨테이너를 분리한 후에만 네트워크를 삭제할 수 있다는 점을 유의해.
사용 예:
docker network rm my_bridge_network
2.3 docker network
명령어 예제
docker network
명령어 사용 예제
예제 1: bridge
네트워크 생성 및 사용
네트워크 생성:
docker network create --driver bridge my_bridge_network
컨테이너 실행 및 네트워크 연결:
docker run -d --name container1 --network my_bridge_network nginx
docker run -d --name container2 --network my_bridge_network redis
네트워크 확인:
docker network inspect my_bridge_network
docker network inspect
명령어 출력은 네트워크에 대한 자세한 정보를 JSON 형식으로 제공해 줄 거야. 출력을 더 읽기 쉽게 하기 위해서는 jq
유틸리티를 사용할 수 있어:
docker network inspect my_bridge_network | jq
이 도구는 네트워크에 대한 데이터, 예를 들어 연결된 컨테이너, IP 주소, 서브넷 설정 등을 필터링하고 구조적으로 확인할 때 유용해.
예제 2: 컨테이너 연결 및 연결 해제
컨테이너 실행:
docker run -d --name my_container nginx
컨테이너를 네트워크에 연결:
docker network connect my_bridge_network my_container
컨테이너를 네트워크에서 분리:
docker network disconnect my_bridge_network my_container
GO TO FULL VERSION