Docker Host내 통신
docker0
- virtual eth bridge: 172.17.0.0/16
- L2 network
- Container 생성시 veth 인터페이스 생성(sandbox)
- 172.17.X.Y로 IP주소 할당
- 모든 Container의 gateway역할을 수행
- container running 시 172.17.X.Y로 IP 주소할당
port-forwarding
https://linux.die.net/man/8/iptables
iptables(8) - Linux man page
iptables(8) - Linux man page Name iptables - administration tool for IPv4 packet filtering and NAT Synopsis iptables [-t table] -[AD] chain rule-specification [options] iptables [-t table] -I chain [rulenum] rule-specification [options] iptables [-t table]
linux.die.net
- port-forwarding 실행
- -p [sourcePort:destPort]
- # docker run --name web1 -d -p 80:80 nginx
- -p [destPort]
- random sourcePort가 할당된다.
- # docker run --name web2 -d -p 80 nginx
- random sourcePort가 할당된다.
- -P
- random sourcePort가 할당되고 해당 container의 dockerfile의 EXPOSE port가 destPort로 지정된다.
- # docer run --name web3 -P nginx
- random sourcePort가 할당되고 해당 container의 dockerfile의 EXPOSE port가 destPort로 지정된다.
- -p [sourcePort:destPort]
user defined bridge network 생성
- network 조회
- # docker network ls
- User define bridge network 생성
- # docker network create --driver bridge --subnet 192.168.100.0/24 --gateway 192.168.100.1 userdefineNet
- User define network를 사용하여 container생성
- # docker run -d --net userdefineNet --ip 192.168.100.2 -p 8888:80 --name webserver3 nginx
Docker Host내 Container간 통신
- MySQL Container 생성
- # docker run -d -v /database:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=rootPass -e MYSQL_PASSWORD=wordpressPass mysql:5.7
- Wordpress Container 생성
- # docker run -d --name wordpress --link mysql:db -e WORDPRESS_DB_PASSWORD=wordpressPass -p 80:80 wordpress:4
'클라우드 > Docker' 카테고리의 다른 글
Docker Compose (0) | 2021.08.18 |
---|---|
Container volume (0) | 2021.08.15 |
Docker resource 관리 (0) | 2021.08.14 |
Docker registry (0) | 2021.08.11 |
Docker image 생성 및 테스트 (0) | 2021.08.11 |