정기간행물/daily

DockerNetwork

:)jun 2023. 3. 28. 22:50

1. 컨테이너가 통신하는 방법

docker0

  • virtual ethernet bridge : 172.17.0.0/16
  • L2 통신기반
  • container 생성 시 해당 컨테이너에 veth 인터페이스 생성
  • 모든 컨테이너는 외부 통신을 docker0 통해 진행
  • container running 시 172.17.X.Y 로 IP 주소 할당

 

2. 컨테이너 포트를 외부로 노출하는 방법

 

port-forwarding

  • container port를 외부로 노출시켜 외부 연결 허용
  • iptables rule을 통한 포트 노출
-p hostPort:containerPort
-p containerPort
-P

 

3. 컨테이너 네트워크 추가하는 방법

 

user-defined bridge network 생성

$ docker network create --driver bridge\
	--subnet 192.168.100.0/24\
    --gateway 192.168.100.254\
    mynet
    
$ docker network ls

$ docker run -d --name appjs\
	--net mynet --ip 192.168.100.100\
    -p 8080:8080\
    smlinux/appjs

 

4. 컨테이너간 통신 방법 (legecy)

$ docker run -d --name wordpress --link mysql:mysql\
	-e WORDPRESS_DB_PASSWORD=wordpress\
  	-p 80:80
    wordpress:4

도커 공식 문서에서는 '--link'보다 user-defined networks를 사용하는 것을 권장한다. (3번 방법)

'정기간행물 > daily' 카테고리의 다른 글

Spring boot에 JKS파일 정보만 입력했는데 어떻게 암호화, 복호화가 둘 다 될까?  (0) 2023.04.04
curl이란?  (0) 2023.03.31
RabbitMQ란?  (0) 2023.03.30
Docker Architecture  (0) 2023.03.29
프로메테우스란?  (0) 2023.03.27