[Docker] 컨테이너간 통신(Network-실습)

99winnmin·2023년 2월 3일
0

Docker

목록 보기
16/16

컨테이너 네트워크 사용하기 && 컨테이너 포트 외부로 노출하기

$ ip addr : docker0 ip 확인
$ brctl show : bridge 확인

  • 172.17.0.2 부터 순차적으로 할당되는 것을 볼 수 있음


  • c1 컨테이너가 외부 통신이 잘 되는 모습

    • docker0(172.17.0.1)을 통해서 외부로 통신하게됨 -> docker0은 NAT 서비스를 통해 HOST ip address로 바꿔서 나가게 됨
      • $ iptables -t nat -L -v 을 통해 MASQUERADE 세팅을 확인
    • $ docker inspect c1 을 통해 NetworkSettings에 TCP 통신을 위해 필요한 값들이 setting되어 있음
  • port-forwarding

    • container port를 외부로 노출시켜 외부 연결 허용
    • iptables rule을 통한 포트 노출
    • example

    $ docker run --name web1 -d -p 80:80 nginx
    $ docker run --name web2 -d -p 80 nginx
    $ docker run --name web -d -P nginx

user-defined network 구성하기

  • docker0는 bridge임

  • user-defined bridge network 생성

  • user-defined bridge network 안에 컨테이너 생성 및 static ip 설정한 것 확인

컨테이너간 통신 wordpress, mysql 컨테이너 서비스 구축하기

$ docker run -d --name mysql -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=wordpress -e MYSQL_PASSWORD=wordpress mysql:latest
$ docker run -d --name wordpress --link mysql:mysql -e WORDPRESS_DB_PASSWORD=wordpress -p 80:80 wordpress:4

혼자해보기

  1. 다음의 container를 빌드하시오
  • genid.sh
#!/bin/bash
mkdir -p /webdata
while true
do
	/usr/bin/rig | /usr/bin/boxes -d boy > /webdata/index.html
	sleep 5
done
  • Dockerfile
FROM ubuntu:latest
RUN apt-get update; apt-get -y install rig boxes
ADD genid.sh /bin/genid.sh
RUN chmod +x /bin/genid.sh
ENTRYPOINT ["/bin/genid.sh"]

$ docker build -t genid . : genid image 생성
$ docker run -d --name genid genid : genid container 실행
$ docker exec -it genid genid : 접근해서 /webdata/index.html 찍어본 결과 잘 나오는 것을 확인

$ docker run -d --name genid -v /webdata:/webdata genid : 로컬에 마운트함


  1. 빌드한 container를 이용해 multi-tier 컨테이너를 구축하기
  • genid에서 생성한 index.html은 volume을 통해 nginx의 웹 컨텐츠로 공유
  • nginx 웹서버는 80포트를 통해 genid가 생성한 html 문서를 서비스해야함
  • result : genid는 웹문서를 생성하고, nginx 는 고객에게 서비스 하는 형식으로 운영

$ docker run -d --name web -v /webdata:/usr/share/nginx/html:ro -p 80:80 nginx : mount한 index.html을 nginx를 통해 service하는 것을 확인

profile
功在不舍

0개의 댓글

관련 채용 정보