172.17.0.0 범위를 사용하지 않도록 Docker 구성


21

포로 포털과 기본 Docker IP 범위의 문제로 인해 Docker가 172.17.0.0 대신 198.18.0.0 범위를 사용하도록하려고합니다. 이는 내가 사는 열차에서 사용되는 포로 포털과 충돌합니다.

다음은 워드 프로세서 , 내가 만들어 /etc/docker/daemon.json, 그 안에 다음을 넣어 :

{
    "bip":"198.18.0.0/16"
}

이것은 docker0에서 작동했지만 다른 네트워크에는 영향을 미치지 않은 것으로 보이며 docker compose를 사용하면 처음으로 만든 네트워크는 172.17.0.0이며 충돌이 다시 발생합니다.

모든 도커 네트워크 의 기본 서브넷을 변경하려면 어떻게해야합니까 (모든 작성 파일에서 사용자 정의 IP 범위를 명시하지 않아도 됨)?

답변:


27

기본 범위를 재정의 할 수 있습니다.

$ docker -v
Docker version 18.06.0-ce, build 0ffa825

docker daemon의 구성 파일을 편집하거나 작성하십시오.

# nano /etc/docker/daemon.json

라인 추가 :

{
  "default-address-pools":
  [
    {"base":"10.10.0.0/16","size":24}
  ]
}

dockerd를 다시 시작하십시오.

# service docker restart

결과를 확인하십시오.

$ docker network create foo
$ docker network inspect foo | grep Subnet
                    "Subnet": "10.10.1.0/24"

도커 작성에도 작동합니다. 자세한 정보는 여기 https://github.com/moby/moby/pull/29376 (병합)


10.10.0.0/16은 전역 기본 네트워크와 겹칩니다. { "base": "192.168.0.0/16","size":24}를 사용할 수 있습니다. github.com/moby/moby/blob/…
Root G

11

도 커가 네트워크 서브넷을 생성하는 장소는 세 곳입니다.

  • 기본 브리지
  • 사용자 생성 브리지 네트워크
  • 스웜 모드 생성 오버레이 네트워크

(나는 그 다리 IP 믿는다 ( "다리"라고 함)의 기본 다리를 들어, BIP를 지정할 수 있는지가 호스트 IP가 아닌 네트워크 IP의 확인 )가있는 daemon.json파일. 또한 사용자 생성 브리지 네트워크의 경우 선택할 서브넷 풀을 정의 할 수 있습니다 (사용자가 서브넷을 수동으로 지정하지 않은 경우). 이 두 가지 경우 /etc/docker/daemon.json다음과 같습니다.

{
  "bip": "10.200.0.1/24",
  "default-address-pools":[
    {"base":"10.201.0.0/16","size":24},
    {"base":"10.202.0.0/16","size":24}
  ]
}

위의 각 주소 풀 설정은 해당 범위에서 할당 할 CIDR 범위와 서브넷 크기를 정의합니다. 위의 내용은 클래스 C 네트워크 (/ 24)로 할당 된 두 가지 클래스 B 범위를 정의합니다. 기본 주소 풀에는 18.06 이상이 필요합니다. 이 변경 사항을 적용하려면 docker 데몬을 다시로드해야합니다 ( systemctl reload docker). 이 변경으로 인해 새로 생성 된 사용자 네트워크 만 수정되므로 컨테이너를 중지하고 잘못된 범위에서 기존 네트워크를 삭제해야합니다.


18.09에서 Docker는 스웜 모드 생성 오버레이 네트워크의 주소 범위를 지정하는 기능을 추가했습니다. 이것은 현재 떼를 만들 때만 가능하며 앞으로 docker swarm update풀을 조정할 수 있도록 업데이트 될 것입니다 .

$ docker swarm init \
  --default-addr-pool 10.202.0.0/16 \
  --default-addr-pool 10.203.0.0/16 \
  --default-addr-pool-mask-length 24

1
현재 2018/2019 옵션에 대한 요약. 또한 Docker Desktop을 사용하는 경우 bip설정 / 기본 설정 GUI 의 옵션입니다. 들어 default-address-pools당신은 같은 GUI에서 수동으로 daemon.json을 편집하고, 떼를 위해의 수 default-addr-pool는 여전히 그들을 변경 init명령.
Bret Fisher

1

기본 브리지 네트워크 구성 : "… 기본 브리지 네트워크 를 구성하려면 daemon.json에 옵션을 지정하십시오. 다음은 몇 가지 옵션이 지정된 daemon.json의 예입니다. 사용자 정의해야하는 설정 만 지정하십시오.…"

compose 사용 : 사용자 지정 네트워크 지정 : "… 기본 앱 네트워크를 사용하는 대신 최상위 네트워크 키를 사용하여 고유 한 네트워크를 지정할 수 있습니다.이를 통해 더 복잡한 토폴로지를 만들고 사용자 지정 네트워크 드라이버 및 옵션을 지정할 수 있습니다. Compose에서 관리하지 않는 외부에서 만든 네트워크에 서비스를 연결하는 데 사용합니다.… "


docker-compose에서 사용하는 암시 적 네트워크에 사용되는 IP 범위와 범위가 명시 적으로 설정되지 않은 IP 범위를 변경할 수 있습니까?
jrtapsell

-1

조금 잔인 할 수도 있지만 sudo ifconfig docker0 down사용하려는 Wi-Fi와 충돌하는 인터페이스를 종료 하기 위해 간단히 수행합니다 .


문제는 네트워킹을 끄는 것이 아니라 다른 범위를 사용하는 것입니다.
RalfFriedl

@RalfFriedl 사실입니다. 그러나 많은 다른 Wi-Fi 네트워크를 사용하는 빈번한 여행자로서 모든 종류의 포트 범위가 충돌하는 것을 보았습니다. 따라서 포트 범위를 검색하는 대신 네트워크를 일시적으로 끌 수도 있습니다.
Falko Menge
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.