Day 5 - Docker 네트워크
Day 5 - Docker 네트워크
목차
1. 컨테이너 네트워크 기본
docker build -t pista-ubuntu:latest .
docker run -td --name=con-pista-ubuntu-1 pista-ubuntu:latest
# IP 확인
docker exec con-pista-ubuntu-1 ip addr
| 인터페이스 | IP | 설명 |
|---|---|---|
| eth0 | 172.17.0.x/16 | 브리지 네트워크 |
DNS/MAC 지정
docker run -td --dns=219.250.36.130 --mac-address="12:34:56:0a:ff:1a" --name=con pista-ubuntu:latest
2. 커스텀 브리지 네트워크
docker network create --driver bridge mynet-bridge-1
docker run -td --name=mycon-11 --network=mynet-bridge-1 pista-ubuntu:latest
docker run -td --name=mycon-12 --network=mynet-bridge-1 pista-ubuntu:latest
컨테이너 이름으로 통신
docker exec mycon-12 ping mycon-11 # ✅ 성공
커스텀 네트워크는 자동 DNS 제공
3. 네트워크 격리
docker network create mynet-bridge-1
docker network create mynet-bridge-2
| 테스트 | 결과 |
|---|---|
| 같은 네트워크 내 ping | ✅ 성공 |
| 다른 네트워크 간 ping | ❌ 실패 |
| 외부 인터넷 ping | ✅ 성공 |
4. 커스텀 서브넷
docker network create \
--subnet=172.20.2.0/24 \
--gateway=172.20.2.1 \
mynet-bridge-2
docker run -td --ip=172.20.2.101 --net=mynet-bridge-2 pista-ubuntu:latest
5. WordPress + MySQL
# MySQL
docker run -d --name=wordpress_db \
--net=mynet-bridge-1 \
-e MYSQL_ROOT_PASSWORD=<PASSWORD> \
-e MYSQL_DATABASE=pista \
mysql:8.0.44-debian
# WordPress
docker run -d --name=my_wordpress \
--net=mynet-bridge-1 \
-p 8080:80 \
-e WORDPRESS_DB_HOST=wordpress_db:3306 \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=<PASSWORD> \
wordpress
6. Docker Compose
services:
db:
image: mysql:8
environment:
- MYSQL_ROOT_PASSWORD=<PASSWORD>
- MYSQL_DATABASE=pista
networks:
- mynet
web:
image: wordpress
ports:
- 8080:80
environment:
- WORDPRESS_DB_HOST=db:3306
depends_on:
- db
networks:
- mynet
networks:
mynet:
driver: bridge
volumes:
db:
docker compose up -d
docker compose down