10.docker network
Docker networking
- bridge network
- docker가 host에 생성한 private netowrk
- 모든 container에 할당, IP 이용해 container 간 통신
- 내부 IP : 172.17.0.1
- docker 0
- none
- 격리된 네트워크, 접근 불가
-
host network
-
user-defined networks
- 새로운 network 생성 :
docker network create --driver=bridge --subnet=182.18.0.0/16 <name>
- 새로운 network 생성 :
외부에서 container에 접속하는 방법
- bridge network 이용
- container port <-> host port mapping 필요함
- host network 이용
- container를 host network에 연결
- host와 container의 network 격리되어 port mapping을 하지 않아도됨
- container에 설정된 port를 통해 접속 가능
- 즉, host network에서는 port가 모든 container에 공유되며, 같은 port가 설정된 동일한 container를 여러개 띄우는 것이 불가능 해짐!
Embedded DNS
- container 끼리는 이름을 사용해 엑세스 가능
- A와 B를 연결
- A container 내부에서
B.connet(<B의 내부 IP>)
- but 내부 IP는 수시로 변함
- so, 이름을 이용해도 연결되는 DNS를 이용
B.connet(<B>)
실습
docker run -d --network=wp-mysql-network -e MYSQL_ROOT_PASSWORD=db_pass123 --name=mysql mysql:5.6