- 도커 컨테이너는 격리된 환경에서 돌아가기 때문에 기본적으로 다른 컨테이너와 통신이 불가능함
- 그러나 도커네트워크를 활용하면 컨테이너끼리도 통신이 가능해짐
도커 네트워크 조회
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
c4c0d5a8d448 bridge bridge local
c849ec33e986 host host local
c6f685e5871b none null local
- 위 기본으로 설정되어 있는 네트워크 중 brige 네트워크를 통해 데몬 내 컨테이너간 통신을 할 수 있다.
- 실행된 컨테이너는 기본으로 생성되어있는 bridge 네트워크에 연결되어 있다.
$ docker network inspect bridge
[
{
"Name": "bridge",
"Id": "c4c0d5a8d448e367f69bfa3f90e6ad29f29960c0f475f001e5fd95f9538ee3ae",
"Created": "2022-03-05T08:16:44.164596344Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {// -> 여기서 확인 가능
"71eee5e57b951a4d84dc31a281a938a7d4348440afbf49673ad1b0ff3da846ba": {
"Name": "clips_db",
"EndpointID": "7e81e2128f82e5826cb7d98786ffd6197cbff07e466578bd59bcba9e738afa37",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]
- 새로운 네트워크를 생성해서 그 네트워크에 연결되도록 설정해줄 수 있다.
**$ docker network create --driver bridge web-network // 네트워크 생성
$ docker container run --net={네트워크 이름} {이미지 이름}**
- 혹은 이미 실행되어 있는 컨테이너에 아래와 같이 네트워크를 붙여줄 수 있다
$docker network connect {network} {container}