# 1. docker network (DRIVER=bridge as default) 생성합니다.
docker create network my_postgres_network
# 2. 현재 실행중인 docker container id 확인합니다. 현재 2개 존재합니다.
docker ps -q
c5f560bf23c4
588eb5cbe059
### 참고: 만약에 docker run 명령어로 network 연결하고 싶다면 아래처럼 하시길 바랍니다.
### docker run --network my_postgres_network ... 생략 ...
# 3. docker network 에 2개의 container 를 포함시킵니다.
docker network connect my_postgres_network c5f56
docker network connect my_postgres_network 588e
# 4. network <-> container 연결을 확인합니다. "Container" 를 자세히 보면 됩니다.
docker network inspect my_postgres_network
[
{
"Name": "my_postgres_network",
"Id": "fd84bcaf0b9394e73ee2a9a1f68af03501170a8cb8ddb2b42e3b9483638f5665",
"Created": "2023-06-08T04:13:43.215135314Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
##### 여기가 핵심 ######
"Containers": {
"588eb5cbe0594b9f3ec29b10a51d20f4d1f47f73a7185a0cbc244e4c63e3c8d3": {
"Name": "MyPostgresKo",
"EndpointID": "d5faf4ebc0acfe0180f7b9a72579d213ea65ec9bd774310f6f1d240edf472bb7",
"MacAddress": "02:42:ac:12:00:03",
"IPv4Address": "172.18.0.3/16", ## 컨테이너에 할당된 IP
"IPv6Address": ""
},
"c5f560bf23c47b1dc409fb234c361f5e79ef176041bc8119458d606987aa2191": {
"Name": "RemotePostgresKo",
"EndpointID": "4b1f665569fff5b37f50281c88a9181d8c3d3042f5e1dfeaf6cee6ddb741542a",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16", ## 컨테이너에 할당된 IP
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
Containers
안에 있는 docker network
와 연결된 Container
의 정보가 보입니다.docker network
내에서 서로 다른 IP 가 존재하는 것을 확인할 수 있습니다.맨 처음 docker 를 설치하고 docker network ls
명령어를 치면 아래와 같이 나옵니다.
이 명령어를 입력하면 Docker 네트워크에 목록을 쉽게 조회할 수 있습니다.
docker network ls
NETWORK ID NAME DRIVER SCOPE
e44bf3fd8034 bridge bridge local
e1ac8bb3ca50 host host local
e5dee8057bd9 none null local
bridge
, host
, none
명칭의 네트워크는 Docker daemon
이 실행되면서 디폴트로 생성되는 네트워크입니다.
Docker
네트워크는 bridge
, host
, overlay
등 목적에 따라 다양한 종류의
network driver
를 지원합니다.
bridge
: 하나의 호스트 컴퓨터 내에서 여러 컨테이너들이 서로 소통할 때 사용host
: 컨테이너를 호스트 컴퓨터와 동일한 네트워크에서 컨테이너를 돌리기 위해서 사용overlay
: 여러 호스트에 분산되어 돌아가는 컨테이너들 간에 네트워킹을 위해서 사용