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
    • -P
      •  random sourcePort가 할당되고 해당 container의 dockerfile의 EXPOSE port가 destPort로 지정된다.
        • # docer run --name web3 -P nginx

 

 

 

user defined bridge network 생성

User define bridge network 생성 및 조회

  • network 조회
    • # docker network ls

user define netwrok를 사용하여 container 생성

  • 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

+ Recent posts