반응형
1. 네트워크 공유 :
- 컨테이너 가상 인터페이스를 공유.
- 같은 IP을 가상 인터페이스에 할당 받게 됨
2. 네트워크 생성
# 172.22.0.0/24 대역의 172.22.0.1의 게이트웨이를 가지는 test_defualt이름의 브릿지 네트워크 생성
$ docker network create --driver bridge --ip-range 172.22.0.0/16 --subnet 172.22.0.0/16 --gateway 172.22.0.1 test_default
3. 컨테이너 생성 및 네트워크 할당
# nginx 컨테이너를 test_nginx_1 이름으로 test_default 네트워크로 할당
$ docker run -itd --name=test_nginx_1 --net=test_default -P nginx:latest
# ansible centos7 컨테이너를 test_centos7_1 이름으로 test_nginx_1 컨테이너 네트워크에 연결
$ docker run -itd --name=test_centos7_1 --net=container:test_nginx_1 ansible/centos7-ansible:latest
4. 설정된 정보 확인
# 속한 컨테이너는 test_nginx_1 1개만 표시.
$ docker network inspect test_default
...
"Containers": {
"57fa7098c764a69a7137b94f142e52d27b6fc98cc535b8dfb3c33ee6d62e43eb": {
"Name": "test_nginx_1",
"EndpointID": "1650328f5c340ca2bae749af08259a90be1b6208d35d62156bc7c89a71978604",
"MacAddress": "02:42:ac:16:00:02",
"IPv4Address": "172.22.0.2/16",
"IPv6Address": ""
}
},
...
# test_nginx_1 컨테이너 inspect 확인 : 172.22.0.2 할당
$ docker inspect test_nginx_1
...
"Networks": {
"test_default": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"57fa7098c764"
],
"NetworkID": "ea790e81a2810d0d4e612faf6a5273a6ec47de5d18b2045e6651469660c459cb",
"EndpointID": "1650328f5c340ca2bae749af08259a90be1b6208d35d62156bc7c89a71978604",
"Gateway": "172.22.0.1",
"IPAddress": "172.22.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:16:00:02",
"DriverOpts": null
}
}
...
# test_centos7_1 컨테이너 inspect 확인 : 인터페이스 정보가 없음.
$ docker inspect test_centos7_1
...
"NetworkSettings": {
"Bridge": "",
"SandboxID": "",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {}
}
...
# 호스트 인터페이스 확인 : veth* 인터페이스가 1개만 생성됨
$ ip addr
...
63: veth71b6760@if62: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-ea790e81a281 state UP group default
link/ether c6:40:d8:bd:4e:ba brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::c440:d8ff:febd:4eba/64 scope link
valid_lft forever preferred_lft forever
5. 컨테이너 내부 확인
# test_centos7_1 컨테이너 확인 : 172.22.0.2로 test_nginx_1과 같은 IP로 할당
$ docker exec -it test_centos7_1 /bin/bash
[root@57fa7098c764 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.22.0.2 netmask 255.255.0.0 broadcast 172.22.255.255
# 외부 통신
[root@57fa7098c764 ansible]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=127 time=43.5 ms
^C
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 43.584/43.584/43.584/0.000 ms
반응형
'Micro Service Architecture > Docker' 카테고리의 다른 글
23. Docker Network - Host (0) | 2021.03.24 |
---|---|
22. Docker Network - Bridge (net-alias) (0) | 2021.03.24 |
20. Docker Network - Bridge (기본) (0) | 2021.03.24 |
19. docker-compose 문법 (0) | 2021.03.24 |
18. [docker] Bash Completion (0) | 2021.03.16 |