docker 0
브릿지 네트워크
호스트 네트워크
NULL 네트워크
링크 (LINK)
# 도커 네트워크 드라이버
# 도커패키지를 설치하면 만들어지는 브릿지
# docker0 브릿지이자 게이트웨이
# 가상의 네트워크 제공
# 컨테이너들에게 ip를 자동 할당하는 인터페이스
vagrant@docker:~$ ip a s
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:24:99:51:5c brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:24ff:fe99:515c/64 scope link
valid_lft forever preferred_lft forever
# 브릿지 (bridge)
# L2네트워크를 제공하기 위한 장비
vagrant@docker:~$ apt install bridge-utils
vagrant@docker:~$ docker run -d --name ldh httpd
vagrant@docker:~$ brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.02422499515c no vethef996d9
# 내부에서 나가는건 가능하지만 외부에서는 들어올 수 없다
wp 웹 mysql 디비
db는 외부에 노출시킬 필요가 없지만 web은 노출 시켜야 한다
-> 외부로 컨테이너를 노출 시키기 위하여
포트포워딩을 사용
# 포트포워딩
vagrant@docker:~$ docker run -d --name ost -p 80:80 httpd
vagrant@docker:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
72756fe04b1a httpd "httpd-foreground" 6 seconds ago Up 5 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp ost
0.0.0.0:80 host에 있는 모든 ip 호스트의 80 포트 -> 80 컨테이너의 80 포트
vagrant@docker:~$ docker run -d --name ost -p 8080:80 httpd
8080으로 접근하면 80으로 보내준다
# 이미지의 정보
exposedports 80 외부에서 접근해야하는 포트
# 호스트(host) 네트워크
호스트 네트워크는 호스트와 네트워크를 공유한다
호스트 네트워크는 같은때문에(80)를 사용할 수 없기 때문에 하나의 컨테이너만 가능
포트포워딩 사용하지 않아도 외부와 통신 가능
vagrant@docker:~$ docker run -d --network host httpd
#null
네트워크가 없는것
vagrant@docker:~$ docker run -d --network none httpd
웹에서 디비로 접근해야함 데이터를 읽어와야하니까
디비에 접속할 정보를 지정,wp.config.php 제공이 번거롭다
-> 링크를 통해 해결
# 링크
두개의 컨테이너가 이름을 가지고 연결할수있다
서로 통신을할때 아이피가 아니라 이름으로 연결
etc/host 파일에 등록이 되고 해당되는 컨테이너에 접근할수있다
#컨테이너 1
vagrant@docker:~$ docker run -d --name ldh -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7
#컨테이너 2
vagrant@docker:~$ docker run -it --name ost --link ldh ubuntu
root@4575c0edfd72:/# cat etc/hosts
172.17.0.2 ldh 3af5cb61025a
'클라우드 > 도커(Docker)' 카테고리의 다른 글
도커 Docker 로드밸런싱 (0) | 2021.07.02 |
---|---|
도커 Docker Wordpress 인프라 구축 (0) | 2021.07.02 |
도커 Docker 볼륨 / Bind Mount, 도커 볼륨 (0) | 2021.07.01 |
도커 Docker 컨테이너 관리 (0) | 2021.07.01 |
도커 Docker Container 명령 (0) | 2021.07.01 |