사용자 도구

사이트 도구


docker:network

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
docker:network [2019/09/26 17:30]
kwon37xi [link]
docker:network [2022/01/04 13:02] (현재)
kwon37xi
줄 1: 줄 1:
 ====== Docker Network ====== ====== Docker Network ======
 +
 +===== CIDR 변경 =====
 +  * docker 의 기본 네트워크인 ''docker0(bridge)''의 IP 대역인 ''172.17.0.0/16''가 자신의 네트워크환경과 충돌 할 경우 변경이 필요하다.
 +  * 이것 때문에 동일 대역대의 다른 장비에 접근이 안되는 경우가 발생한다.
 +  * ''/etc/docker/daemon.json'' 을 생성 혹은 편집하는 방법. 완료후 ''sudo service docker restart''<code json>
 +
 +{
 +  "default-address-pools": [
 +    {
 +      "scope": "local",
 +      "base": "192.168.0.0/16",
 +      "size": 24
 +    }
 +  ]
 +}
 +</code>
 +  * [[https://bluese05.tistory.com/16|docker0 IP 및 CIDR 변경하기]]
 +  * [[https://docs.docker.com/v17.09/engine/userguide/networking/default_network/custom-docker0/|Customize the docker0 bridge | Docker Documentation]]
  
 ===== Bridge 네트워크 구성으로 docker 컨테이너들간 네트워크 공유 ===== ===== Bridge 네트워크 구성으로 docker 컨테이너들간 네트워크 공유 =====
   * 일반적으로 여러 Docker 컨테이너가 서로에게 접속할 필요가 있을 때 사용한다.   * 일반적으로 여러 Docker 컨테이너가 서로에게 접속할 필요가 있을 때 사용한다.
-  * 과거에 ''--link''로 할 수 있었으나 deprecated 상태이다.+  * 과거에 ''%%--%%link''로 할 수 있었으나 deprecated 상태이다. 
 + 
 +<code sh> 
 +# bridge 생성 
 +docker network create --driver bridge <네트워크이름> 
 + 
 +# 생성된 목록 확인 
 +docker network ls 
 + 
 +# 네트워크 상태 조회 
 +docker network inspect <네트워크ID> # 네트워크ID의 맨 앞 두 글자만 입력해도 됨 
 + 
 +# 컨테이너를 띄울 때 --net <네트워크이름>  
 +docker run --net <네트워크이름> 
 + 
 +# 네트워크 제거 
 +docker network rm <네트워크이름> 
 +</code> 
 + 
 +==== --subnet 지정 ==== 
 +''Error response from daemon: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network'' 오류가 발생할 경우, 이미 사용중인 IP 대역에 대해 네트워크를 생성하려고 해서인듯. 
 +  * [[https://github.com/docker/for-linux/issues/599|Error response from daemon: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network · Issue #599 · docker/for-linux]] 
 +  * ''%%--subnet%%'' 지정을 통해 다른 IP 대역을 할당한다. 
 +  * ''%%--%%ip-range=172.72.0.0/24'' 
 +  * ''%%--%%gateway=172.72.0.1'' 
 + 
 +<code sh> 
 +docker network create --driver bridge <네트워크이름> --subnet="192.168.110.0/24" 
 +</code>
  
 ===== link ===== ===== link =====
줄 20: 줄 66:
 # 이제 web 컨테이너에서는 db 라는 호스트명으로 mongodb 에 접속가능해진다. # 이제 web 컨테이너에서는 db 라는 호스트명으로 mongodb 에 접속가능해진다.
 </code> </code>
 +
 +===== IP 환인 =====
 +  * docker container 의 실제 IP 확인
 +  * ''docker inspect <container-id>'' : **''IPAddress''** 항목에서 확인가능
 +  * ''docker exec <container-id> ip addr show eth0'' : 이것은 해당 컨테이너에 ''ip''라는 명령이 존재해야 한다.
  
 ===== 참조 ===== ===== 참조 =====
줄 25: 줄 76:
   * [[http://linux.systemv.pe.kr/docker-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%9D%B4%ED%95%B4/|Docker 네트워크 이해]]   * [[http://linux.systemv.pe.kr/docker-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%9D%B4%ED%95%B4/|Docker 네트워크 이해]]
   * [[https://jungwoon.github.io/docker/2019/01/13/Docker-4/|Docker 정리 #4 (도커 네트워크)]]   * [[https://jungwoon.github.io/docker/2019/01/13/Docker-4/|Docker 정리 #4 (도커 네트워크)]]
- 
  
docker/network.1569486655.txt.gz · 마지막으로 수정됨: 2019/09/26 17:30 저자 kwon37xi