programing

도커 "ERROR: 네트워크에 할당하는 기본값 중 중복되지 않는 사용 가능한 IPv4 주소 풀을 찾을 수 없습니다."

coolbiz 2023. 1. 27. 22:05
반응형

도커 "ERROR: 네트워크에 할당하는 기본값 중 중복되지 않는 사용 가능한 IPv4 주소 풀을 찾을 수 없습니다."

는 전화번호부를 있다.apkmirror-scraper-compose하다

.
├── docker-compose.yml
├── privoxy
│   ├── config
│   └── Dockerfile
├── scraper
│   ├── Dockerfile
│   ├── newnym.py
│   └── requirements.txt
└── tor
    └── Dockerfile

다음과 하려고 합니다.docker-compose.yml:

version: '3'

services:
  privoxy:
    build: ./privoxy
    ports:
      - "8118:8118"
    links:
      - tor

  tor:
    build:
      context: ./tor
      args:
        password: ""
    ports:
      - "9050:9050"
      - "9051:9051"

  scraper:
    build: ./scraper
    links:
      - tor
      - privoxy

서, 「」는Dockerfile★★★★★★에tor하고 있다

FROM alpine:latest
EXPOSE 9050 9051
ARG password
RUN apk --update add tor
RUN echo "ControlPort 9051" >> /etc/tor/torrc
RUN echo "HashedControlPassword $(tor --quiet --hash-password $password)" >> /etc/tor/torrc
CMD ["tor"]

을 위해privoxy하고 있다

FROM alpine:latest
EXPOSE 8118
RUN apk --update add privoxy
COPY config /etc/privoxy/config
CMD ["privoxy", "--no-daemon"]

서 ''는config

listen-address 0.0.0.0:8118
forward-socks5 / tor:9050 .

Dockerfile★★★★★★에scraper하고 있다

FROM python:2.7-alpine
ADD . /scraper
WORKDIR /scraper
RUN pip install -r requirements.txt
CMD ["python", "newnym.py"]

서 ''는requirements.txt에는 한 의 행이 되어 있습니다.requests★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」newnym.py는, 를 주소를 되어 있습니다.「 Tor 」 、 [ IP ] 。

from time import sleep, time

import requests as req
import telnetlib


def get_ip():
    IPECHO_ENDPOINT = 'http://ipecho.net/plain'
    HTTP_PROXY = 'http://privoxy:8118'
    return req.get(IPECHO_ENDPOINT, proxies={'http': HTTP_PROXY}).text


def request_ip_change():
    tn = telnetlib.Telnet('tor', 9051)
    tn.read_until("Escape character is '^]'.", 2)
    tn.write('AUTHENTICATE ""\r\n')
    tn.read_until("250 OK", 2)
    tn.write("signal NEWNYM\r\n")
    tn.read_until("250 OK", 2)
    tn.write("quit\r\n")
    tn.close()


if __name__ == '__main__':
    dts = []
    try:
        while True:
            ip = get_ip()
            t0 = time()
            request_ip_change()
            while True:
                new_ip = get_ip()
                if new_ip == ip:
                    sleep(1)
                else:
                    break
            dt = time() - t0
            dts.append(dt)
            print("{} -> {} in ~{}s".format(ip, new_ip, int(dt)))
    except KeyboardInterrupt:
        print("Stopping...")
        print("Average: {}".format(sum(dts) / len(dts)))

docker-compose build성공했지만, 가 시도한다면docker-compose up 메세지가 , 다음음음음음 。

Creating network "apkmirrorscrapercompose_default" with the default driver
ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network

이 오류 메시지에 대한 도움말을 검색하려고 했지만 찾을 수 없었습니다.이 에러의 원인은 무엇입니까?

도킹 스테이션이 네트워크 생성의 최대치를 나타내고 있는 것을 보았습니다. " " "docker network prune를 사용하여 하나 이상의 컨테이너가 사용하지 않는 모든 네트워크를 제거할 수 있습니다.

Robert가 코멘트한 처럼 제 문제는 결국 openvpn에 관한 문제였습니다.service openvpn stop문제를 해결합니다.

OpenVPN을 실행하고 있었기 때문에 이 문제가 발생하였습니다.OpenVPN을하자마자 OpenVPN이 되었습니다.docker-compose up오류가 사라졌습니다.

OpenVPN도 동작하고 있는 상태에서 이 문제를 실행한 결과 OpenVPN 서버를 정지/기동해서는 안 되는 솔루션을 찾았습니다.

사용할 서브넷을 정확히 지정해야 한다는 개념입니다. »docker-compose.yml 삭제:

networks:
  default:
    driver: bridge
    ipam:
      config:
        - subnet: 172.16.57.0/24

로로그그그그다다 그럼 이제 ㅇㅇㅇㄹㄹㄹㄹ,default이 VPN에서 무언가를 172.16.57.*브넷 、 넌아아 。

Peter Hauge의 코멘트에 따라, 달릴 때docker network ls는 (대사 과 같은 것을 .

NETWORK ID          NAME                                    DRIVER              SCOPE
dc6a83d13f44        bridge                                  bridge              local
ea98225c7754        docker_gwbridge                         bridge              local
107dcd8aa889        host                                    host                local

NAME ★★★★★★★★★★★★★★★★★」DRIVER 다 그렇듯이host"호스트에 이미 생성된 프로그램"을 말하는 것 같습니다.https://gist.github.com/bastman/5b57ddb3c11942094f8d0a97d461b430,에 이어서 명령어를 실행했습니다.

docker network rm $(docker network ls | grep "bridge" | awk '/ / { print $1 }')

, 이제docker-compose up있다(다만,newnym.py에러가 발생합니다).

저도 같은 문제가 있어요.docker system prune -a --volumes,docker network prune둘다다다 안안안안안

VPN을 사용하고 있는데 VPN을 끄고 도커가 정상적으로 시작되고 네트워크를 만들 수 있게 되었습니다.그 후 VPN을 다시 이노블로 할 수 있습니다.

TL;DR

더하다

version: '3.7'
services:
  web:
    ...
    network_mode: bridge

에 대해서는, 메뉴얼을 참조해 주세요.

롱 버전

면책사항:Docker 네트워킹에 대해서는 잘 모르지만, 이것으로 충분히 할 수 있었습니다.YMMV

docker run my-image인해 이 를 로 때,docker-compose.yml OP와 했습니다.

는 인터넷에서 Arenim의 답변과 기존 네트워크를 재사용할 것을 제안하는 몇 가지 것들을 읽었다.

다음과 같은 기존 네트워크를 찾을 수 있습니다.

# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
ca0415dfa442        bridge              bridge              local
78cbbda034dd        host                host                local
709f13f4ce2d        none                null                local

디폴트를 재사용하고 싶다.bridge했습니다.

services:
  web:
    ...

networks:
  default:
    external:
      name: bridge

마음속 깊이docker-compose.yml 내 )services(예: 루 ( 、 ( ( ( ( ( ( ( ().

다음의 에러가 표시되게 되었습니다.

오류: 컨테이너의 경우 네트워크 범위 별칭은 사용자 정의 네트워크의 컨테이너에서만 지원됩니다.

이것은 도커 기트허브 문제에 부딪혔고, 그것은 분명히 내가 더해야 한다고 말했다.network_modedocker-compose:

version: '3.7'
services:
  web:
    ...
    network_mode: bridge

버전 「Docker」에서되었습니다.18.09.8,docker-compose1.24.1 형식 " " " " 입니다.3.7.

local은 다음과 같습니다.bridge네트워크는 30개의 다른 네트워크만 지원합니다(각 네트워크는 이름으로 일의로 식별할 수 있습니다).하지 않는 「」를 해 주세요.docker network prune효과가 있을 거야

그러나 각각 고유한 네트워크를 가진 30개 이상의 컨테이너를 구축하는 데 관심이 있을 수 있습니다. 할 , '', '아까', '아까', '아까운', '아까운'을 정의할 필요가 있을 거예요.overlay네트워크.이것은 조금 더 까다롭지만 여기에 매우 잘 문서화되어 있습니다.

편집(2020년 5월):링크를 사용할 수 없게 되어 문서를 살펴보니 정확한 대체 방법은 없지만 여기서부터 시작하는 것이 좋습니다.

VPN 접속 실행 중 동일한 오류가 발생하였습니다.도커 컴포지트로 도커 이미지 작성 시도.VPN 접속을 잠시 정지하고 명령어를 실행할 수 있습니다.

VPN을 종료할 필요는 없습니다.

새로운 네트워크 사용에 대한다른 코멘트는 솔루션과 매우 비슷하고, 한동안은 효과가 있었지만, 다른 질문에서 몇 가지 이야기를 한 덕분에 더 나은 방법을 찾을 수 있었습니다.

다음을 포함하는 네트워크 생성:

docker network create your-network --subnet 172.24.24.0/24

그런 다음 docker-compose.yaml 하단에 다음과 같이 입력합니다.

networks:
  default:
    external: 
      name: your-network

완료. 모든 컨테이너 정의 등에 네트워크를 추가할 필요가 없으며 필요에 따라 네트워크를 다른 도커 컴포지트 파일과 함께 다시 사용할 수도 있습니다.

로 하는 는, IP 가, 「」를 시켜 각 할 수 .default-address-pools 설정, 데아몬 설정에 할 수 ./etc/docker/daemon.json:

{
  "bip": "10.254.1.1/24",
  "default-address-pools":[{"base":"10.254.0.0/16","size":28}],
}

에서 10.254.1.1/24(254 IP 소 )

한 다른 는 "Docker"를 합니다.10.254.0.0 호스트 한(65k 호스트), 16개의 호스트 제공)"size":28는, CIDR 마스크를 참조하고 있습니다(16 호스트의 경우).

를 몇 개 , 「」를 했을 .docker network inspect <name>을 사용하다

        ...
        "Subnet": "10.254.0.32/28",
        "Gateway": "10.254.0.33"
        ...

10.254.0.32/28는, 이 가 IP 의 16 을할 수 것을 합니다.10.254.0.32-10.254.0.47.

정답: 도커 네트워크 프루닝

시도해 보세요

$sudo service network-manager restart

나한테는 통했어

같은 에러 메세지에 같은 문제가 있었습니다만, 사용하지 않는 도커 네트워크를 삭제하는 솔루션은 도움이 되지 않았습니다.기본이 아닌 모든 도커 네트워크(및 모든 이미지와 컨테이너)를 삭제했지만 도움이 되지 않았습니다. 도커는 여전히 새로운 네트워크를 만들 수 없었습니다.

OpenVpn" "입니다.(이전에는 호스트에 설치되어 있었습니다.는 그들을 찾아냈다.ifconfig★★★★★★★★★★★★★★★★★★:

...
tun0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      inet addr:10.8.0.2  P-t-P:10.8.0.2  Mask:255.255.255.0
      UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
      RX packets:75 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100 
      RX bytes:84304 (84.3 KB)  TX bytes:0 (0.0 B)

tun1  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      inet addr:10.8.0.2  P-t-P:10.8.0.2  Mask:255.255.255.0
      UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
      RX packets:200496 errors:0 dropped:0 overruns:0 frame:0
      TX packets:148828 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100 
      RX bytes:211583838 (211.5 MB)  TX bytes:9568906 (9.5 MB)
...

몇 가지 명령으로 삭제할 수 있습니다.

ip link delete tun0
ip link delete tun1

그 후, 문제는 없어졌습니다.

  1. 동작하고 있는 과 같이 실시합니다.docker-compose down
  2. VPN이 접속되어 있는 경우는, 접속을 해제하고, 도커 컨테이너의 업을 재시도합니다.

    docker-compose up -d container_name
    

같은 문제를 암호화했습니다.그 이유는 네트워크의 최대수에 도달했기 때문입니다.

docker network lsdocker network rm networkname_default

은 제가 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★OpenVPNVPN 사용을 중지하거나 도커 컴포지트 파일에 수동으로 네트워크를 추가하거나 비정상적인 스크립트를 실행할 필요가 없는 방법을 찾았습니다.

는 로로로 바꿨다.WireGuardOpenVPN구체적으로는 Nordvpn 솔루션을 실행하고 있기 때문에 WireGuard를 설치하고 NordLynx 버전을 사용했습니다.

다수의 docker network ls'을(를) 실행해 .docker system prune -f

이 행은 사용되지 않는 데이터, 사용되지 않는 이미지 및 사용되지 않는 모든 로컬 볼륨을 제거합니다.내 crontab에 있어

# cleanup docker
0 3 * * * /usr/bin/docker system prune -f;/usr/bin/docker image prune -a --filter "until=24h" -f; /usr/bin/docker volume prune -f

나도 같은 문제에 부딪쳤다

를 사용하여 네트워크 "를 만듭니다.
하는 디폴트 되지 않는 사용 수 .IPv4 주소 풀을 찾을 수 없습니다.

Cisco VPN을 끌 때까지 아무것도 도움이 되지 않았습니다.도커 컴포넌트가 동작한 후

시스템에서 VPN이 실행 중일 때 이 오류가 발생했습니다.VPN 연결을 끊자마자 도커가 가동되었습니다.

OpenVPN을 실행하고 있지 않은 기업 개발 VM에서 이 문제가 발생했습니다. 아웃 중etc/docker/daemon.json 찾았다.

...
"default-address-pools": [
  {
    "base": "192.168.11.0/24",
    "size": 24
  }
],
...

이상하게도, 제거는default-address-pools한 후 합니다.sudo systemctl restart docker저를 위해 문제를 해결해주셨어요.도커가 보다 적절한 디폴트를 선택할 수 있을 것이라고 생각합니다만, 선택한 디폴트의 문제가 무엇인지 알 수 없습니다.

이 문제는 forcepoint vpn 주소가 원인이 되어 실행했습니다.

- 사용 는 1 - 사용 중인 주소로 합니다.nmcli

2 - 중복되지 않는 CIDR 주소(x.x.x/xx) #google을 선택하면 자세한 내용이 표시됩니다.

3 -docker container prune 컨테이너를 모두 합니다 # 컨테이너를 파기합니다.

4 -docker network prune#하는 ##네트워크를 파괴하다.

- 없는 ) 5 - 수정(존재하지 않는 경우 생성)/etc/docker/daemon.json다음 엔트리를 추가합니다(최종적으로는 선택한 주소로 변경).

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


x 는 IP 를 있는 외부 로 이동할 가 있는 , 가능성이 만, 가 다른 .B.x.x.x 의 IP 를 하고 있는 는, 1입니다.

6 -sudo systemctl restart docker

error - 수 .6 . " - " 스른른른른른른른른른른른른른른른른른른른른 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6"

journalctl -xe에러를 확인합니다.

를 다시 할 수 .nmcli시시시시시시다다

카운트를 할 수 .sudo systemctl reset-failed servicename.service

같은 에러가 있었습니다만, 제 경우는 컨테이너가 너무 많아서(약 220개)였습니다.

이 문제는 작업하고 있던 기업 네트워크 중 하나에서 발견되었습니다.특정 요건은 도커 172.17.0.0/16 및 172.18.0.0/16에서 기본값을 사용하지 않았습니다.

10.28.160.0/24 및 10.28.161.0/24 등의 개인 IP4 네트워크를 도커 데몬에서 설정하기로 되어 있어 중복되지 않는 문제가 발생하고 있습니다.서브넷 마스크를 /16(10.28.160.0/16 등)으로 변경하면 문제가 해결되었습니다.이는 분명히 더 많은 수의 호스트를 제공하므로 폴링이 쉽게 이루어집니다.

이 문제는 단계별로 수정했습니다.

  1. 네트워크(케이블 또는 유선)를 끕니다.

  2. 시스템을 재부팅합니다.

  3. PC에서 네트워크를 켜기 전에 명령어 도커를 실행합니다. 그러면 새로운 네트워크가 생성됩니다.

  4. 네트워크를 켜고 계속할 수 있습니다.

언급URL : https://stackoverflow.com/questions/43720339/docker-error-could-not-find-an-available-non-overlapping-ipv4-address-pool-am

반응형