Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- LangChain
- Ai
- update_state
- fastapi
- summarize_chat_history
- Docker
- removemessage
- rag
- tool_calls
- 추천시스템
- subgraph
- Python
- agenticrag
- RecSys
- conditional_edges
- pinecone
- 강화학습
- 강화학습의 수학적 기초와 알고리듬의 이해
- rl
- langgraph
- 강화학습의 수학적 기초와 알고리듬 이해
- tool_call_chunks
- toolnode
- chat_history
- langgrpah
- REACT
- 밑바닥부터 시작하는 딥러닝
- adaptive_rag
- add_subgraph
- 밑바닥부터시작하는딥러닝 #딥러닝 #머신러닝 #신경망
Archives
- Today
- Total
타임트리
도커의 가상 네트워크 본문
도커는 컨테이너 간/외부와의 통신을 위해 가상 네트워크를 사용한다. 가상 네트워크는 물리적인 네트워크 장비 없이, 하나의 서버 내에서 논리적으로 정의된 네트워크이며, 이 네트워크 망안에서 컨테이너들끼리 서로 통신하거나 외부의 서버와도 통신할 수 있다.
도커를 설치하면 기본적으로 가상의 브릿지 네트워크인 docker0
가 자동으로 생성한다. 이 가상의 라우터/공유기 역할을 하는docker0
브릿지는 172.17.0.1의 가상 IP 주소를 할당 받는다. (보통 공유기가 192.168.0.1의 사설 IP를 할당 받듯이). 그리고 컨테이너가 실행될 때, 이 브릿지 네트워크 범위 내에서 고유한 IP 주소를 자동으로 할당한다.
예를 들어, 컨테이너 A를 실행하면, docker0
의 네트워크의 주소 범위에서 A에게 IP 주소가 부여된다. 이후 또 다른 컨테이너 B를 실행하면, B 역시 같은 브리지 네트워크에서 IP를 할당받는다. 이 경우 컨테이너 A와 B는 같은 네트워크에 있으므로, 서로의 IP 주소를 통해 직접 패킷을 주고받을 수 있다.
도커 내의 가상 네트워크가 어떻게 구성되는지 아래 그림을 통해 살펴보자. (Host는 내 PC라고 가정)
- 현재 내 PC는 공인 IP를 받아 공유기를 통해 사설 IP 192.168.0.2를 받은 상황이라고 가정하자.
- 도커는 Host OS에
docker0
라는 가상 브릿지 인터페이스를 한 개 생성한다. - 컨테이너가 해당 네트워크 브릿지에 생성될 때마다 Veth라는 접두어를 붙여 veth pair라는 형태의 가상 인터페이스가 생성된다.
- 각 컨테이너는 해당 인터페이스를 통해
docker0
와 연결되며, 브릿지 내부에서 패킷이 전송된다.- 예를 들어, Host OS에서
veth3
인터페이스로 네트워크 신호를 보내면 이는 컨테이너 C로 전달된다.
- 예를 들어, Host OS에서
- Container C에서 172.17.0.3(컨테이너 B의 IP)으로 요청을 보내면,
- Host OS의 Kernel SW인
iptables
규칙을 통해veth3
->veth2
경로로 전달된다. - 이
iptables
규칙은 도커가 컨테이너를 생성하거나 삭제할 때 자동으로 관리한다.
- Host OS의 Kernel SW인
---
출처 - 인프런 개발자를 위한 쉬운 도커(https://inf.run/Apgvc)
'Today I Learned > Docker' 카테고리의 다른 글
포트포워딩(포트매핑) (0) | 2025.05.03 |
---|---|
FastAPI와 Docker를 활용한 LangGraph 애플리케이션 배포 (0) | 2025.01.30 |