사용자 도구

사이트 도구


docker:network

Docker Network

CIDR 변경

  • docker 의 기본 네트워크인 docker0(bridge)의 IP 대역인 172.17.0.0/16가 자신의 네트워크환경과 충돌 할 경우 변경이 필요하다.
  • 이것 때문에 동일 대역대의 다른 장비에 접근이 안되는 경우가 발생한다.
  • /etc/docker/daemon.json 을 생성 혹은 편집하는 방법. 완료후 sudo service docker restart
    {
      "default-address-pools": [
        {
          "scope": "local",
          "base": "192.168.0.0/16",
          "size": 24
        }
      ]
    }

Bridge 네트워크 구성으로 docker 컨테이너들간 네트워크 공유

  • 일반적으로 여러 Docker 컨테이너가 서로에게 접속할 필요가 있을 때 사용한다.
  • 과거에 --link로 할 수 있었으나 deprecated 상태이다.
# bridge 생성
docker network create --driver bridge <네트워크이름>
 
# 생성된 목록 확인
docker network ls
 
# 네트워크 상태 조회
docker network inspect <네트워크ID> # 네트워크ID의 맨 앞 두 글자만 입력해도 됨
 
# 컨테이너를 띄울 때 --net <네트워크이름> 
docker run --net <네트워크이름>
 
# 네트워크 제거
docker network rm <네트워크이름>

--subnet 지정

Error response from daemon: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network 오류가 발생할 경우, 이미 사용중인 IP 대역에 대해 네트워크를 생성하려고 해서인듯.

docker network create --driver bridge <네트워크이름> --subnet="192.168.110.0/24"
# 몽고DB를 띄우고
docker run --name db -d mongo
 
# 거기에 접속할 다른 도커 컨테이너 띄울때
docker run --name web -d -p 80:80 --link db:db nginx
 
# 이제 web 컨테이너에서는 db 라는 호스트명으로 mongodb 에 접속가능해진다.

IP 환인

  • docker container 의 실제 IP 확인
  • docker inspect <container-id> : IPAddress 항목에서 확인가능
  • docker exec <container-id> ip addr show eth0 : 이것은 해당 컨테이너에 ip라는 명령이 존재해야 한다.

참조

docker/network.txt · 마지막으로 수정됨: 2022/01/04 13:02 저자 kwon37xi