docker 네트워크
Docker bridge Network구조: default로제공되고사용되는네트워크

host는 내 컴퓨터일수도있고 클라우드 일수도 있다.
컴퓨터에 도커를 깔면 docker0가 자동으로 생성된다.
ㄴ vmnet8이랑 비슷함. ip설정은 안하는게 되도록 좋다.
컨테이너 만들때 마다 veth가 만들어진다. 이친구는 그냥 연결해주는 친구라 ip가 할당 안됨. (왜 있는지는 모름.)
■ docker0
• Docker에서 기본 제공되는 bridge 네트워크 인터페이스 → 브릿지는 그냥 연결한다는 의미임.
• 172.17.0.1이 기본 할당되며 container에 DHCP를 제공한다. → ip는 자동으로 할당됨.(외부에서 볼수없어서 ip가 뭔지는 의미는 없음.)
■ veth#######
• Container의 eth0와 쌍으로 제공되어 docker0와 연결한다.
• docker0와 eth0가 직접 연결되지 않는 이유는???
■ eth0
• Container의 인터페이스로 docker의 bridge 네트워크로 부터 IP를 자동할당 받는다.
• IP를 직접 지정하는 것도 가능하다.
■ Container나 VM 환경의 네트워크는 일반적인 물리적 네트워크와 비슷하지만 동일하지 않다
컨테이너의 ip주소나 이름을 잘 신경안쓴다. 만들때 겁나 많이 만들기 때문이다. 접속은 포트번호로 접속. 접속식별할때 이름으로 확인함.
Container에서발생한패킷이외부로전송되는과정-host에서 패킷캡처
① Container:eth0 → veth#######
② veth####### → docker0:enp1s0
③ enp1s0 → 외부
Docker 에서 제공하는 네트워크
• bridge- 기본 네트워크로 컨테이너 실행시에 자동으로 선택된다.
ㄴ docker0사용하면 브릿지라고 함. • host- 호스트의 네트워크를 직접 이용한다.
• none- Container가 네트워크를 사용하지 않도록 설정한다.
• 사용자 정의 네트워크- 사용자가 직접 CIDR을 지정해서 생성하는 네트워크
ㄴ 새로운 브릿지 사용. 이걸로 하면 컨테이너 이름으로 통신할수 있음.
• overlay- 다중 호스트 도커 서버를 이용하는 경우 사용된다.
• macvlan- 물리적인 네트워크에 컨테이너 mac 주소를 통해 직접 연결한다.
Network 명령
docker network 하위명령 [option] network_name
| ls | 네트워크 목록을 표시한다 |
| create | 네트워크를 생성한다. |
| inspect | 상세한 정보를 확인한다 |
| connect/disconnect | Container를 네트워크에 연결/연결해제 한다 |
| rm | 네트워크를 삭제한다. |
docker network ls [option]
| -no-trunc | 자세한정보를출력한다. |
| -q, --quiet | 네트워크 ID만 출력 |
| -f, --filter | 필터키를이용해서출력을필터링한다. |
docker network inspect 네트워크
ㄴ 자세한 정보를 출력
docker network create [option] network_name
| d, --driver | bridge/overlay 지정( 반드시 지정. ) |
| --ip-range | container에 할당되는 IP 범위 지정 |
| --subnet | 서브넷을 CIDR로 지정 |
| --ipv6 | ipv6 사용여부 |
| --label | label 지정 |
네트워크가 생성되면 bridge 인터페이스가 생성된다.
기존 bridge를 사용할 경우 : containe간 통신은 IP만 가능하다.
임의의 네트워크를 사용할 경우 : container간 통신에 name, IP 사용 가능
mynet : 생성된 bridge 네트워크
# docker network create --driver=bridge --subnet=172.18.0.0/16 mynet
# docker run -itd--net=mynet--name myos1 centos:8
# docker run -itd--net=mynet--name myos2 centos:8
# docker attach myos1
# ping myos2
PING myos4 (172.18.0.3) 56(84) bytes of data.
64 bytes from myos4.mynet (172.18.0.3): icmp_seq=1 ttl=64 time=0.120 ms
64 bytes from myos4.mynet (172.18.0.3): icmp_seq=2 ttl=64 time=0.131 ms
64 bytes from myos4.mynet (172.18.0.3): icmp_seq=3 ttl=64 time=0.132 ms
64 bytes from myos4.mynet (172.18.0.3): icmp_seq=4 ttl=64 time=0.253 ms
64 bytes from myos4.mynet (172.18.0.3): icmp_seq=5 ttl=64 time=0.128 ms
64 bytes from myos4.mynet (172.18.0.3): icmp_seq=6 ttl=64 time=0.130 ms
64 bytes from myos4.mynet (172.18.0.3): icmp_seq=7 ttl=64 time=0.131 ms
'kh교육' 카테고리의 다른 글
| (20250903046)image (0) | 2025.09.03 |
|---|---|
| (20250902046)data와 volume (0) | 2025.09.02 |
| (20250829046)docker (1) | 2025.08.29 |
| (20250827044)Docker Image & HUB (0) | 2025.08.27 |
| (20250826043)oracle (1) | 2025.08.26 |