docker0 = network interface , NAT 와 포트포워딩 서비스를 지원한다. (iptables를 통해)
bridge = docker host1의 네트워크 인터페이스와 veth0,1 을 연결해주는 역할을 한다.
enp0s3가 현재 VM의 host ip 가 된다. docker0 는 브릿지 역할을 한다.
host로부터 80포트로 들어오는 모든 패킷은 nginx 컨테이너 80port로 다 포트포워딩이 된다.
포트는 항상 일대일 매핑이다.
docker0 네트워크 인터페이스안에는 static하게 고정ip 를 주는게 불가능하다.
새로운 bridge를 만들면된다. default gateway 는 subnet이 저런 상태일때는 192.168.100.1 이 된다. 0은 identifier ,255는 broadcast인걸 기억하자
--net 을 통해 어떤 bridge를 쓸건가 고를 수 있고 --ip를 통해 원하는 static network를 할당 가능하다. 기본은 1부터 할당 된다.
컨테이너끼리 통신을 하기위해 --link를 명렁어가 존재한다.
-e == set environment variable이다.
실습
docker 0 가 bridge 역할을 하는걸 확인
busybox라는 이미지를 실행시킨것이다. docker0를 통하니 172.17.0.2 , 3 이렇게 ip가 할당 되었다. 순차적인거 확인~
docker inspect c1을 통해 networksetting을 살펴보면 sandbox에서 이런 네트워크 세팅을 해준다. endpointID 가 네트워크 인터페이스 카들르 의미하고 gateway ,ipaddress 등 잘 할당되어 있는 것을 확인 가능하다.
172.17.0.0/16 에 해당 되는 IP들은 destination 이 어디든간에 source 가 host ip로 바꿔서 나갈것이다.
docker run 할떄 port fowarding option을 주면 docker ps했을때 PORTS에 설명이 나온다.
dockerfile 에서 expose <Port> 가 있으면 -P (대문자) 옵션으로 알아서 들어오는 포트를 랜덤으로 지정해준다.
wordpress와 msyql 이 연동이 되었다.
https://docs.docker.com/network/links/
-- link는 legacy 다. 없어질지도 모름
user bridge를 통해 network connect 명령어를 통해 연결해야한다.
'Cloud > Docker' 카테고리의 다른 글
이게 돼요? 도커 없이 컨테이너 만들기 / if(kakao)2022 (0) | 2023.01.31 |
---|---|
[따배도] 10. 빌드에서 운영까지(using Docker Compose) (0) | 2022.01.22 |
[따배도] 8. Docker Container Storage (0) | 2022.01.20 |
[따배도] 7. 컨테이너 리소스관리 (0) | 2022.01.20 |
[따배도] 5.컨테이너 보관창고 , 6. 컨테이너 사용하기 (0) | 2022.01.10 |