docker network 구조

Screenshot 2023-01-01 at 6.07.43 PM.png

veth: virtual eth

Container port 노출

docker run -p [HOST IP:PORT] : [CONTAINER PORT] [container]

# nginx container의 80번 포트를 호스트 모든 IP의 80번 Port와 연결하여 실행
docker run -d -p 80:80 nginx

# nginx container의 80번 포트를 host 127.0.0.1 IP의 80번 포트와 연결하여 실행
docker run -d -p 127.0.0.1:80:80 nginx

# nginx container의 80번 포트를 host의 사용 가능한 포트와 연결하여 실행
docker run -d -p 80 nginx

Expose vs Publish

# expose 옵션은 그저 문서화 용도
docker run -d --expose 80 nginx

# publish 옵션은 실제 포트를 바인딩
docker run -d -p 80 nginx

Docker Network Driver

Screenshot 2023-01-01 at 6.18.24 PM.png

Screenshot 2023-01-01 at 6.19.41 PM.png

Single Host Networking

Multi Host Networking

실습

fastcampus-devops/3-docker-kubernetes/1-docker-network

none

#!/usr/bin/env sh

docker run -i -t --net none ubuntu:focal

none.sh

host

#!/usr/bin/env sh

docker run -d --network=host grafana/grafana

host.sh

bridge

#!/usr/bin/env sh

docker network create --driver=bridge fastcampus

docker run -d --network=fastcampus --net-alias=hello nginx
docker run -d --network=fastcampus --net-alias=grafana grafana/grafana

bridge.sh


#Docker