반응형
1. 개념 : container의 네트워크 스택은 Docker host와 분리되지 않으며, container는 host의 namespace를 공유.
- 이에 따라 자체 IP 주소를 할당받지 않고 port 80을 바인딩하는 container는 호스트 IP 주소에 있는 port 80을 사용할 수 있음.
- vmware의 host network 와는 다름.
2. 컨테이너 생성
# nginx 컨테이너를 host 네트워크로 생성
$ docker run -itd --name=test_nginx_1 --net=host nginx:latest
3. 네트워크 확인
# test_nginx_1 컨테이너가 할당되었지만 IP 정보는 없음.
$ docker network inspect host
...
"Containers": {
"c3fd5da98c78c83cbf39af10a17304d9738d2e1833d8392a70bebc354d7b03c9": {
"Name": "test_nginx_1",
"EndpointID": "daaeeea0f2470fda361a841ae16dff595de9460e3cb3f633f8a89bb18ab0e1f0",
"MacAddress": "",
"IPv4Address": "",
"IPv6Address": ""
}
},
...
# 호스트 인터페이스 확인 : veth* 와 같은 가상 인터페이스가 생성 되지 않음.
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:e6:5d:13 brd ff:ff:ff:ff:ff:ff
inet 192.168.6.200/24 brd 192.168.6.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::7cd7:4062:7e9e:ad12/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:e3:2e:95:b4 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
59: br-ea790e81a281: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:d4:15:76:fe brd ff:ff:ff:ff:ff:ff
inet 172.22.0.1/16 brd 172.22.255.255 scope global br-ea790e81a281
valid_lft forever preferred_lft forever
inet6 fe80::42:d4ff:fe15:76fe/64 scope link
valid_lft forever preferred_lft forever
4. 컨테이너 확인
# 컨테이너를 생성할때 publish port 정보가 없이 생성.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3fd5da98c78 nginx:latest "/docker-entrypoint.…" 7 minutes ago Up 7 minutes test_nginx_1
# 호스트 netstat 정보를 확인하면 nginx 가 사용하는 80포트가 열려있는 것을 확인
$ netstat -anpot | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11263/nginx: master off (0.00/0/0)
tcp6 0 0 :::80 :::* LISTEN 11263/nginx: master off (0.00/0/0)
반응형
'Micro Service Architecture > Docker' 카테고리의 다른 글
22. Docker Network - Bridge (net-alias) (0) | 2021.03.24 |
---|---|
21. Docker Network - Bridge (네트워크 공유) (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 |