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 } ] }
--link
로 할 수 있었으나 deprecated 상태이다.# bridge 생성 docker network create --driver bridge <네트워크이름> # 생성된 목록 확인 docker network ls # 네트워크 상태 조회 docker network inspect <네트워크ID> # 네트워크ID의 맨 앞 두 글자만 입력해도 됨 # 컨테이너를 띄울 때 --net <네트워크이름> docker run --net <네트워크이름> # 네트워크 제거 docker network rm <네트워크이름>
Error response from daemon: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network
오류가 발생할 경우, 이미 사용중인 IP 대역에 대해 네트워크를 생성하려고 해서인듯.
--subnet
지정을 통해 다른 IP 대역을 할당한다.--ip-range=172.72.0.0/24
--gateway=172.72.0.1
docker network create --driver bridge <네트워크이름> --subnet="192.168.110.0/24"
--link <컨테이너 이름>:<별칭>
# 몽고DB를 띄우고 docker run --name db -d mongo # 거기에 접속할 다른 도커 컨테이너 띄울때 docker run --name web -d -p 80:80 --link db:db nginx # 이제 web 컨테이너에서는 db 라는 호스트명으로 mongodb 에 접속가능해진다.
docker inspect <container-id>
: IPAddress
항목에서 확인가능docker exec <container-id> ip addr show eth0
: 이것은 해당 컨테이너에 ip
라는 명령이 존재해야 한다.