도커 네트워크 개념
docker는 가상 네트워크(SDN)을 사용하여 컨테이너의 통신을 관리함.
주요 네트워크 드라이버
드라이버 종류 | 설명 |
none (null) |
|
bridge |
|
host |
|
overlay |
|
도커 네트워크 드라이버 지정
docker run으로 생성시 --network옵션을 통해 지정 가능하다.
docker run --rm --network host 이미지명 ip addr
→ 컨테이너를 실행할 때 네트워크 옵션을 host로 지정
도커 네트워크 확인 명령
docker network ls
컨테이너의 네트워크 인터페이스 확인법
컨테이너 내부에서 ip addr 사용할 시엔?
1.컨테이너 접속
docker exec -it 컨테이너ID /bin/bash
root@컨테이너ID:~#
apt-get install net-tools //아무것도 설치가 안되어있을 확률이 높음
2. ip addr
호스트 ip addr
docker0 라는 bridge 네트워크가 생성됨.
컨테이너는 docker0 인터페이스에 직접 연결 X
vethXXXX 인터페이스에 bridge 드라이버로 연결됨.
도커 컨테이너의 네트워크 구성도
https://jonnung.dev/docker/2020/02/16/docker_network/ 이미지 출처
이렇게 해서 컨테이너끼리의 통신은 가능해짐. 하지만 다른 호스트의 컨테이너와는 통신 불가능! 본인 호스트와는 통신가능 !
컨테이너를 외부 통신 가능하게 하기
컨테이너는 기본적으로 외부에서 컨테이너로 접근 불가능하다. 하지만 port forwarding을 활용하여 호스트의 IP로 요청을 받아 컨테이너 IP로 전달하는 통신 과정이 가능하게 함.
도커 컨테이너 생성시 -p옵션을 통해 포트를 지정해줘야 함.
docker run --name web1 -d -p 80:80 nginx //컨테이너의 80번 포트와 nginx의 80번 포트와 연결
docker run -d --name my-nginx -p 80:80 -p 192.168.153.128:8080:80 nginx
- -d : 컨테이너를 백그라운드에서 실행한다.
- --name : 본인이 따로 사용할 이미지의 별칭을 지정한다.
- -p 80:80 : docker컨테이너 80번 포트와 nginx 웹 서버 이미지의 80번 포트를 연결한다.
- -p 192.168.153.128:8080:80 : VM ip인 192.168.153.128과 8080포트를 도커 컨테이너 80번 포트와 연결한다.
https://docs.google.com/document/d/1gzp45_EeqLyLAIk2LGEcQAyy50wXVa0ldbhv9bLL2IE/edit?usp=sharing
'프로젝트 > 클라우드 스터디' 카테고리의 다른 글
[3회차] Docker CPU와 메모리 제한 (1) | 2025.02.04 |
---|---|
[3회차]docker 네트워크 관련 명령어(network create , network connect, network rm ) (1) | 2025.02.04 |
[2회차]docker 볼륨관리 (1) | 2025.02.03 |
[2회차]04. Docker 컨테이너 기본 개념 + 컨테이너 관리 명령어 (0) | 2025.01.23 |
[2회차] 03. docker hub 및 docker 이미지 관리 명령어 모음 (0) | 2025.01.23 |