Compose: “驱动程序无法在端点上编程外部连接”(1.7.0-rc1)

创建于 2016-04-06  ·  278评论  ·  资料来源: docker/compose

在我安装最新的Docker for Mac beta版(已升级到docker 1.11.0-rc3)之前,我很确定这可以在docker-compose 1.7.0-rc1上运行。 我正在尝试使socat服务在端口172.17.0.1:8123上运行,以便它可用于Docker构建。 我真正的yml使用一个环境变量作为IP地址,但是即使进行硬编码也会发生这种情况。

ERROR: for socat_httpcache  driver failed programming external connectivity on endpoint test_socat_httpcache_1 (5d973ed559d63a5561b715248f797a336915a44960b5e32e622ac8349b16e5d2): Error starting userland proxy: failed to bind port: Unix.Unix_error(Unix.EADDRNOTAVAIL, "bind", "")
version: '2'
services:
  httpcache:
    restart: always
    image: clue/polipo
    command: proxyAddress=0.0.0.0 allowedClients=0.0.0.0/0 disableIndexing=false disableServersList=false
    mem_limit: 500m
    memswap_limit: 500m
    volumes:
      - /var/cache/polipo

  socat_httpcache:
    restart: always
    hostname: POLIPO1
    image: bobrik/socat
    mem_limit: 50m
    command: TCP-LISTEN:8123,fork,reuseaddr TCP:httpcache:8123
    depends_on:
      - httpcache
    ports:
      - "172.17.0.1:8123:8123"

verbose.txt

arenetworking

最有用的评论

请停止发送+1,因为它会对所有订阅者收件箱进行垃圾邮件发送。 要么使用表情符号(每个评论右侧的笑脸),要么至少提供完整的设置,版本号等。 谢谢

所有278条评论

@jamshid
您可以过帐sudo netstat -nlp | grep 8123的o / p吗? 谢谢。

我的mac电脑说-p需要一个参数,所以我想这就是你想要的:

$ sudo netstat -nl -p tcp  | grep 8123
(nothing)
$ sudo netstat -nl -p tcp  | head    # to confirm mac output is what you expect
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)    
tcp4       0      0  192.168.2.4.52918      216.58.194.34.80       ESTABLISHED
tcp4       0      0  192.168.2.4.52917      23.199.236.147.80      ESTABLISHED
tcp4       0      0  192.168.2.4.52916      192.229.163.25.443     ESTABLISHED
tcp4       0      0  192.168.2.4.52915      192.229.163.175.80     ESTABLISHED
...
$ docker ps -a | grep 8123
7baf5b2ec0eb        clue/polipo               "polipo proxyAddress="   26 minutes ago      Up 12 minutes                  8123/tcp            test_httpcache_1
3fea15e3d5b4        clue/polipo               "polipo proxyAddress="   33 minutes ago      Up 19 minutes                  8123/tcp            buildenv_httpcache_1

同样的事情发生在我身上。

使用docker-compose重新启动时出现相同的问题。 就我而言,这是一个nginx代理服务无法启动。 必须与Docker for Mac beta相关。 它是在我安装Beta之后启动的,但在切换回Virtualbox之后并没有发生。

docker-compose版本1.7.0,内部版本0d7bf73
Docker版本1.11.0,内部版本4dc5990

当我尝试使用docker-compose启动堆栈时,遇到了同样的错误。 除一个(领事)外,所有容器均能正确启动。 我收到这个错误

ERROR: for consul driver failed programming external connectivity on endpoint devas_consul_1 (6ceba32c51cb70b354f 2f4b68d173ca97a65d6a0bfd308d3137e2a7069abd1b6): Error starting userland proxy: Failed to bind: EADDRNOTAVAIL

我确定这与我的Mac版docker版本Beta有关。

docker-compose -v docker-compose version 1.7.0, build 0d7bf73

我正在使用Mac的最新docker beta版本

`
码头工人版本
客户:
版本:1.11.1
API版本:1.23
Go版本:go1.5.4
Git提交:5604cbe
建成:2016年4月27日星期三00:34:20
操作系统/ Arch:darwin / amd64

服务器:
版本:1.11.1
API版本:1.23
Go版本:go1.5.4
Git提交:8b63c77
建成:2016年4月29日星期五14:13:26
操作系统/ Arch:linux / amd64
`

根据上述消息,我得到Error starting userland proxy: Failed to bind: EADDRINUSE.
对于冲突在哪里,以前从未存在的地方感到困惑

如何“释放”正在使用的端口以便组合可以再次调出容器? 第一次发生时,我等待了一分钟左右,第二次尝试成功了。 第二次,大约一个小时。 Docker构成了kill,down,rm --all等,还有一些东西可以解决。

我找出问题所在,导致问题的容器(领事)具有此绑定端口172.17.0.1:53:8600/udp 。 我用53:8600/udp代替了它,现在可以正常工作了。 我还不明白为什么第一次绑定不起作用。 顺便说一句,我怎么知道网桥的IP地址?

您好,我在Mac OSX上的Docker 1.11.1版中遇到了同样的问题。
ERROR: for nginx driver failed programming external connectivity on endpoint managercentralapp_nginx_1 (e11d19ee8f486a2e12c9c87802dca7ea5f541f026645f69e338e94732ac1eb56): Error starting userland proxy: Failed to bind: EADDRINUSE

升级到Docker 1.12-rc2之后,我也得到了这个,不确定是否是发布此内容的正确位置。

Client:
 Version:      1.12.0-rc2
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   906eacd
 Built:        Fri Jun 17 20:35:33 2016
 OS/Arch:      darwin/amd64
 Experimental: true

Server:
 Version:      1.12.0-rc2
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   906eacd-unsupported
 Built:        Fri Jun 17 21:12:28 2016
 OS/Arch:      linux/amd64
 Experimental: true

完整错误:

Error response from daemon: driver failed programming external connectivity on endpoint xxx_xxx_1 (xxx): Bind for 0.0.0.0:2224 failed: port is already allocated

netstat:

tcp6       0      0 :::2224                 :::*                    LISTEN      9083/docker-proxy

我偶尔看到这种情况。 一分钟后重试该命令通常可以“解决”问题。
这是在昨天迁移到Mac的Docker之后。

$ docker version
Client:
 Version:      1.12.0-rc2
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   906eacd
 Built:        Fri Jun 17 20:35:33 2016
 OS/Arch:      darwin/amd64
 Experimental: true

Server:
 Version:      1.12.0-rc2
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   a7119de
 Built:        Fri Jun 17 22:09:20 2016
 OS/Arch:      linux/amd64
 Experimental: true

我也和你们一样遇到了同样的错误。 我相信这是因为nginx绑定了已经占用的端口,但我现在不这么认为。 有人找到任何解决方案吗? :)

+1在Mac上出现相同错误

我在移动到Docker for Mac之后发生了这种情况,但是在移动之后停止并删除了所有容器之后,重新启动了docker,重新创建了容器等,此问题已得到修复。

我在更新Docker for Mac之后今天又有了这个,但是重复了上述情况。 我假设分配给特定容器的端口(和“其他”东西)在完全清理之前不会释放。

例如:

ERROR: for nginx driver failed programming external connectivity on endpoint dev_nginx (4c340c55f7402c7b265803ea64541ebdf8613f4b43dfa816001d27bdc4f513b3): Error iptables FORWARD: Another app is currently holding the xtables lock; waiting (1s) for it to exit... ERROR: Encountered errors while bringing up the project.

+1在Mac上有相同的问题

@TuningGuide MacBook Pro(15英寸,2011年末),2.2 GHz Intel Core
运行节点4.4.7扩展以支持Ember CLI。 设置如下:

FROM node:4.4.7

# expose ember-cli ports
EXPOSE 4200 35729 49152

# install ember-cli dependencies
RUN npm install -q -g ember-cli
RUN npm install -q -g bower
RUN npm install -q -g phantomjs-prebuilt

# install watchman
# http://ember-cli.com/user-guide/#watchman
RUN \
  git clone https://github.com/facebook/watchman.git &&\
  cd watchman &&\
  git checkout v3.5.0 &&\
  ./autogen.sh &&\
  ./configure &&\
  make &&\
  make install

使用“ ember serve”作为命令来运行已装载的ember-cli文件。

在Mac上使用Docker为Mac +1相同的问题

请停止发送+1,因为它会对所有订阅者收件箱进行垃圾邮件发送。 要么使用表情符号(每个评论右侧的笑脸),要么至少提供完整的设置,版本号等。 谢谢

➜  ~ docker info
Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 2
Server Version: 1.12.0-rc3
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 21
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null host bridge overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.14-moby
Operating System: Alpine Linux v3.4
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 1.954 GiB
Name: moby
ID: GZAT:26TX:PYCM:KKNA:JSWY:AMEL:RQYI:O23B:QGSQ:WBVB:3Q7E:XDPJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 18
 Goroutines: 30
 System Time: 2016-07-08T17:41:26.03558348Z
 EventsListeners: 1
No Proxy: *.local, 169.254/16
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 127.0.0.0/8
➜  ~ cat docker-compose-local.yml
version: '2'
services:
  cache:
    image: redis
    command: redis-server --appendonly yes
    ports:
      - "6379:6379"
  db:
    image: postgres:9.4
    ports:
      - "5432:5432"
    volumes:
      - ./tmp/dump.gz:/tmp/dump.gz
      - ./tmp/dump.sh:/docker-entrypoint-initdb.d/dump.sh
    environment:
      POSTGRES_DB: dbname
      POSTGRES_USER: dbuser
      POSTGRES_PASSWORD: dbpass

得到了下一个错误:

ERROR: for cache  driver failed programming external connectivity on endpoint carsaver_cache_1 (253054ef6864bdcb5377bd1690173fa352021d505dc05c3aafecf66b02c0b73d): Error starting userland proxy: write /port/tcp:0.0.0.0:6379:tcp:172.18.0.2:6379/ctl: errno 526

ERROR: for db  driver failed programming external connectivity on endpoint carsaver_db_1 (8a5990bd06a50d87c7db96de84367bb01b71c971d5a4b9e578fea7d75d893d59): Error starting userland proxy: write /port/tcp:0.0.0.0:5432:tcp:172.18.0.3:5432/ctl: errno 526
ERROR: Encountered errors while bringing up the project.

找到了与我上面显示的错误相同的人的解决方案。
我以前使用的是Docker Toolbox,但没有删除Virtualbox。 它正在使用我的端口,因此无法启动。 完全删除VirtualBox之后, docker-compose很棒。

@aanand @dnephin,请向Getting Started添加上述警告。

@miraage很高兴听到您解决了您的问题。
我没有您的volume data + dump.sh,但是进行了快速撰写而没有问题:

Creating driverfailed_cache_1
Creating driverfailed_db_1
Attaching to driverfailed_cache_1, driverfailed_db_1

@jamshid为什么要为socat指定IP(不熟悉)? 您如何使用它?
在没有IP的情况下执行docker-compose up我没有任何问题:

Creating socat_httpcache_1
Creating socat_socat_httpcache_1
Attaching to socat_httpcache_1, socat_socat_httpcache_1
docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
f2e3b3767982        bobrik/socat        "socat TCP-LISTEN:812"   2 seconds ago       Up 1 seconds        0.0.0.0:8123->8123/tcp   socat_socat_httpcache_1
43dbd35629e0        clue/polipo         "polipo proxyAddress="   3 seconds ago       Up 2 seconds        8123/tcp                 socat_httpcache_1

如果您的目标是让您的http_cache与socat容器通信,为什么不将它们放置在同一网络上并完成此操作呢?

version: '2'
services:
  httpcache:
    restart: always
    image: clue/polipo
    command: proxyAddress=0.0.0.0 allowedClients=0.0.0.0/0 disableIndexing=false disableServersList=false
    mem_limit: 500m
    memswap_limit: 500m
    volumes:
      - /var/cache/polipo
    networks:
      - socatnet

  socat_httpcache:
    restart: always
    hostname: POLIPO1
    image: bobrik/socat
    mem_limit: 50m
    command: TCP-LISTEN:8123,fork,reuseaddr TCP:httpcache:8123
    depends_on:
      - httpcache
    networks:
      - socatnet
networks:
  socatnet:

好吧,我在持续构建/集成流程中的centos7中使用docker引擎1.11.2来自动化测试,据我所知,即使没有容器在运行,最终也会弹出此错误(重新部署特定版本时)整个服务堆栈)。 这似乎也与以下事实有关:有时docker引擎在删除正在运行的容器后尝试清除错误,并且出于某些原因可能会保留某些iptables规则分配网络端口,这可能与https://github.com/有关

我在运行Postgresql容器的Mac上遇到了同样的问题。 因此,对我来说,这是由于postgres在主机系统上的端口与我的compose配置文件中指定的端口一起运行而引起的。 很明显的事情,但对我猜想的人可能会有帮助。
感谢您的酷工具。 👍

我在运行nginx容器的Mac上使用Docker遇到了类似的问题,我的端口80被apache(本机)使用。 我使用telnet和netstat查看正在运行的服务。

对我来说,那是鱿鱼,我停下了鱿鱼,再也没有看到。 因此,我认为这可能与占用端口的一切以及是否强制Docker映射该端口有关。

@marcosalberto和其他人一样。 我尝试将postgres安装到的帖子已被使用。 我刚刚更改了端口,一切运行良好。

在osx上,内置的Apache Web服务器可能正在端口80/443上运行。 去检查:
ps -ef | grep httpd

要将其关闭:
须藤apachectl停止

是的,它对我有用。 我的OS X没有激活的Apache,但是几天后我使用了这个网站: https :

此脚本之后

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6

推荐用于php更新的apache已激活,我的容器给我带来了惊喜。

当我们想要“更新php”时,我们不需要“激活apache”,但是上面的网站在google中排名第一:(

祝大家搬运愉快!

有时docker-compose无法启动所需的容器,并使端口占用进程监听。.因此,尝试使用列出所有(监听)端口

lsof -nP +c 15 | grep LISTEN

# outputs
Dropbox             384  IPv4 0x82c      TCP 127.0.0.1:17600 (LISTEN)
com.docker.slirp   6218  IPv4 0x82c      TCP *:5432 (LISTEN) <<<MOSTLY THE PROBLEM
Python             6268  IPv4 0x82c      TCP 127.0.0.1:51617 (LISTEN)

# then kill the com.docker.slirp process id if it's the one causing the problem
kill -9 6218

更新:
我还能够重现此问题(多次)...在本地启动正在侦听端口XXX并启动暴露相同XXX端口的容器...
它将无法运行docker-compose up并且com.docker.slirp进程不会被杀死,导致问题一直存在,直到com.docker.slirp进程被手动杀死为止(我什至添加了别名alias portfix='pkill com.docker.slirp'

在Mac上为+1

@ mad-raz很好的解决方法! 谢谢!

发生过同样的错误
Error starting userland proxy: write /port/tcp:0.0.0.0:80:tcp:172.17.0.5:80/ctl: errno 526

对我来说是nginx。
我不得不杀死Nginx来解决它sudo nginx -s stop

这里也+1。

尝试了@ mad-raz建议的解决方法,并清除了所有保留,但是几秒钟后它们又回来了。 看似com.docker.slirp进程正由监视程序服务重新生成。 结果,错误在下一个docker-compose上浮出水面。

driver failed programming external connectivity on endpoint ... Bind for 0.0.0.0:9086 failed: port is already allocated

docker-compose版本1.8.0-rc2,内部版本c72c966

关闭Docker for Mac之后,这些过程仍然存在。
% ps -ef | grep docker !10007 0 1086 1 0 Tue03PM ?? 0:00.01 /Library/PrivilegedHelperTools/com.docker.vmnetd 648074730 30807 1 0 1:49PM ?? 0:00.07 /Applications/Docker.app/Contents/MacOS/com.docker.osx.hyperkit.linux -watchdog fd:0 648074730 30808 30807 0 1:49PM ?? 0:00.03 /Applications/Docker.app/Contents/MacOS/com.docker.osx.hyperkit.linux -watchdog fd:0 648074730 30810 30807 0 1:49PM ?? 0:02.08 com.docker.db --url=file:///Users/astone/Library/Containers/com.docker.docker/Data/s40 --git /Users/astone/Library/Containers/com.docker.docker/Data/database

在Mac上+1 :(

通过从顶部栏菜单(Docker图标>首选项>卸载)中卸载docker并重新安装它的解决方法:(

谢谢@ alexander-emelyanov!
我在OS X上为我的项目运行docker-compose up -d时突然出现此错误,并且与使用Liip脚本在Mac上安装PHP 7(以便SublimeText语法检查正常工作)没有任何关系。同一天。

确实是由于Apache在我的Mac上开始使用,所以我不得不停止它。

我在运行postgres时遇到问题。 我用brew services stop postgres验证了postgres不在我的主机上运行。 我运行lsof -i :5432并得到以下输出:

image

docker是否在内部运行postgres? 当我使用SIGINT终止进程时,docker状态栏图标开始滚动,并重新启动了服务。 我可以使它工作的唯一方法是更改​​docker-compose文件中的主机端口。

阅读了一个变通办法,确切地解释了https://github.com/docker/compose/issues/3277#issuecomment -232505775

@ mad-raz终止进程时,Docker(对于Mac)自动立即重新启动,并且仅在几秒钟后再次使用相同的端口...

我最终重置了Docker(并因此删除了所有容器),并且再次工作了,所有端口都已释放😕

这个问题实际上是两个问题:

  1. 当端口已被另一个应用程序(例如Apache)使用时,会出现一个令人困惑的错误消息。 Docker 1.12.0中已修复了该问题(现在已明确表示“端口已分配”)。
  2. 停止容器后,它们使用的端口有时仍映射在localhost

有人还在遇到问题吗? 2在将Docker for Mac升级到最新版本( 1.12.01.12.0-beta21如果您处于beta通道后)之后?

我仍然遇到这个问题。
Docker v1.12,Docker Compose v1.8。

有一个nginx服务,它不会启动,以及其他一些偶尔会失败的服务:

ERROR: for nginx  Cannot start service nginx: driver failed programming external connectivity on endpoint test_nginx_1 (3f72f35baab64b37c667a4a98e9b8c4adc312e2df7a16c80030536101c695546): Bind for 0.0.0.0:80 failed: port is already allocated

尝试重新启动,关闭整个项目并重新创建,但是没有任何效果。

sudo netstat -tulpn | grep 80

tcp6       0      0 :::80                   :::*                    LISTEN      3455/dockerd

Docker信息:

Containers: 30
 Running: 30
 Paused: 0
 Stopped: 0
Images: 89
Server Version: 1.12.0
Storage Driver: btrfs
 Build Version: Btrfs v4.4
 Library Version: 101
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge null host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-31-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 9.765 GiB
Name: apps
ID: 7WCN:K7EU:M6IO:NPF2:UK2W:HBKO:MUSD:V7FC:RNWU:3FSA:BNAR:TZEH
Docker Root Dir: /mnt/storage/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 127.0.0.0/8

版:

Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 22:11:10 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 22:11:10 2016
 OS/Arch:      linux/amd64

值得注意的是,我的compose项目中有29个服务。

同样奇怪的是,当Docker无缘无故地挂在端口80上时,我无法从另一台主机连接到端口80。 当容器合法使用端口80时,可以从外部访问端口80。

造成此问题的原因之一是,如果未在容器外部使用该端口,则会错过配置docker-compose.yml的时间,因此应为expose: d而不是ports: ed
因为使用ports会将端口同时暴露给其他服务容器和主机...而expose仅将端口暴露给其他服务容器(不干扰主机端口映射) ...

我的问题不是配置问题(至少我不认为是)。
我可以重新启动Docker Daemon并重新启动我的所有容器,并且每次它将是不同的容器并因错误而失败。 似乎是Docker不应将其挂在端口上的一个bug。

就我上面使用nginx的情况而言,即使我删除了nginx容器并重新启动docker守护程序,docker仍在侦听端口80和443:

因此,我设法解决了这个问题。 理想情况下,我不想卸载Docker,因为我想保留所有映像,因此下载了很多映像! 相反,我删除了所有自定义网络,删除了所有容器,然后删除了docker/network/files/local-kv.db并重新启动了计算机。

看来Docker内部的某些内容已在此文件中破坏并持久存在,并且无法清除或修复它。 这可能是因为我从1.11版开始,然后经历了所有1.12版候选版本,而现在是1.12版,因此升级过程中可能发生了一些故障。

现在看来工作正常😄
如果有来自Docker团队的人想看看它,我会保存旧的local-kb.db文件。 概括地说,问题是守护程序在端口80和443上侦听,即使没有容器在这些端口上侦听。

我遇到了同样的问题。 删除了所有容器,网络和local-kv.db +重新启动...现在可以再次使用。

在ubuntu上使用docker 1.12.0,docker-compose 1.8和swarm 1.2.4时也会发生这种情况。 使用领事的KV。 GW Network上的端点加入失败:驱动程序无法对端点网关上的外部连接进行编程。 发生错误的容器将保持创建状态,直到您将其清除。

Debian上同样的错误:

# docker version
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:02:53 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:02:53 2016
 OS/Arch:      linux/amd64
# docker-compose up -d
Starting elk_elk_1

ERROR: for elk  driver failed programming external connectivity on endpoint elk_elk_1 (8b8bb61b786bd1e07fa83c39a14338cab6c594cdfe74890c36e32ed9de33d8d9): Bind for 0.0.0.0:12201 failed: port is already allocated
# netstat -nl -p tcp  | grep 12201
udp6       0      0 :::12201                :::*                                14055/docker-proxy

在Ubuntu 16.04LTS上出现相同的错误。

码头工人版本
客户:
版本:1.12.1
API版本:1.24
Go版本:go1.6.3
Git提交:23cf638
建成:2016年8月18日星期四05:33:38
操作系统/ Arch:linux / amd64

服务器:
版本:1.12.1
API版本:1.24
Go版本:go1.6.3
Git提交:23cf638
建成:2016年8月18日星期四05:33:38
操作系统/ Arch:linux / amd64

docker-compose版本
docker-compose版本1.7.1,内部版本0a9ab35
docker-py版本:1.8.1
CPython版本:2.7.9
OpenSSL版本:OpenSSL 1.0.1e 2013年2月11日

步骤3:运行rm /etc/nginx/conf.d/default.conf
--->使用缓存
-> 18fabfe71380
第4步:添加default.conf /etc/nginx/conf.d/
--->使用缓存
---> ad8c17a883c9
成功构建ad8c17a883c9
创建uauth_fpm_1
创建uauth_redis_1
创建uauth_web_1

错误:对于Web驱动程序,无法对端点uauth_web_1上的外部连接进行编程(1a1e10881709d37b7b242f43dca561802ddf19d67f713cfd05eb2cdae3c4b0c0):绑定0.0.0.0:443失败:端口已分配
追溯(最近一次通话):
文件““,第3行,在
main中的文件“ compose / cli / main.py”,第63行
AttributeError:“ ProjectError”对象没有属性“ msg”
docker-compose返回-1

按照madjam002的方法解决了这个问题。

  1. docker rm -f所有容器。
  2. docker network rm网络接口。
  3. 须藤rm /var/lib/docker/network/files/local-kv.db
    然后重启,就可以了。 谢谢朋友。

我找不到文件/var/lib/docker/network/files/local-kv.db 。 在哪里可以找到这样的文件? 我正在使用El Capitan 10.11.4和Docker for Mac 1.12。

@ tsantos84当您使用Mac的Docker时,Docker将在VM内运行。

请尝试以下操作(尽管我尚未测试过):

  • docker rm -f $(docker ps -aq) (将删除您的所有容器)
  • docker network rm $(docker network ls -q) (将删除您的所有网络)
  • docker run --rm -v /var/lib/docker/network/files:/network busybox rm /network/local-kv.db

然后重新启动Mac的Docker,您应该会很好👍

或者,您可以通过以下方式连接到xhyve VM:

屏幕-AmdS docker〜/ Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty
屏幕-S码头工人-p 0 -X东西
屏幕-r泊坞窗
rm -f /var/lib/docker/network/files/local-kv.db
屏幕-S docker -X退出

@aanand,我仍然遇到问题号。 2,也就是停止容器后,它们使用的端口有时仍映射在localhost上。
我在Ubuntu 14.04和docker版本上:1.12.0

在停止并删除容器后运行docker-compose up会引发以下官方postgresql映像错误:

 ERROR: for db  Cannot start service db: driver failed programming external connectivity on endpoint postgres (a0edc4146637dea0b4641f06f74a38be7977259142136faee2bd0f0e8f7d6a36): Bind for 0.0.0.0:5432 failed: port is already allocated
 ERROR: Encountered errors while bringing up the project.

这是netstat显示的内容:

 sudo netstat -nlp | grep 5432

 tcp6       0      0 :::5432     :::*    LISTEN

Mac的@ mad-raz修复在Ubuntu上对我不起作用。 在Ubuntu上有解决任何问题

@mankind您是否尝试过上述任何一种修复方法?

@ madjam002是,除了最后一行,就是说我没有运行docker run --rm -v / var / lib / docker / network / files:/ network busybox rm /network/local-kv.db,因为你说你没有我没有测试删除所有这些文件的含义,所以我没有删除它们,因为我想看看是否可以解决此问题而无需从头开始删除并重新安装docker。

@mankind这是实际执行修复的最后一行。 运行该命令将会从Docker移除所有网络,这是一个破坏性的操作,但这是我所知道的解决此问题的唯一方法。 它与我之前在此线程中发布的命令完全相同,唯一的区别是您在Docker容器中而不是在主机上运行它。

为了明确起见,您将需要删除所有容器并运行将删除所有网络的命令,但是如果您担心的话,将保留Docker映像。

@ madjam002感谢您的澄清。

我在这个线程中遇到了很多人所描述的错误; 但是我的问题/解决方案不同于其他所有人。

我在Mac上使用docker-machine。 我有多个使用docker的项目。 我使用一台机器,每个项目只使用docker-compose在这台机器上启动我的容器。 我发现的问题是,我试图为一个项目(项目b)启动我的容器,但出于某种原因(不确定原因)而在运行另一个项目(项目a)的容器。

具体来说,我收到了无法绑定到端口80和3306的错误,因为在启动项目b容器时,项目a已经在运行并将其自身绑定到那些端口。

我只是使用docker ps -a来验证其他容器是否正在运行并已绑定到这些端口。 停止这些容器可以为我解决问题。

我在这里看到的主要问题是项目中的这些容器不断启动,而我却没有真正启动它们。

希望这对其他人有帮助。

相同的问题已修复了在同一端口上停止另一个应用程序的问题,请检查该应用程序是否将您的端口与netstat -anp | grep PORT (将PORT替换为您正在使用的端口)或使用其他端口。 这为我解决了。
希望对任何人有帮助。

@ragboyjr也许您已经开始使用docker-compose up -d开始项目a容器,并且在撰写文件中包含restart: always

@ madjam002感谢您的修复! 这已经让我在Docker for Mac上困扰了几个月,我不得不诉诸于恢复出厂设置,但是与重新启动xhyve vm一起运行又重新释放了这些端口。

在我的情况下,使用docker for mac,删除所有容器并杀死占用端口的docker进程不足以解决问题。 我还必须删除与这些端口关联的网络。

停止并删除Docker容器:
docker stop $(docker ps -a -q); docker rm $(docker ps -a -q); docker volume rm $(docker volume ls -qf dangling=true)

删除有问题的网络:
docker network rm(docker network ls -q)

找出哪个进程占用了端口
lsof -nP | grep LISTEN

检查last命令的输出,并杀死占用该端口的进程(有关此操作,请参见@ mad-raz的帖子)。 按照这些步骤为我解决了这个问题。

@marcelmfs你是绝对正确的! 对此感激不尽。

在这里+1相同,为Mac重新启动docker可以修复它

Docker For Windows刚刚告诉我进行更新,所以我做到了。 现在我的容器无法启动。 全新重启,全新Docker重启,无容器运行。 数据库无法启动:

来自守护程序的错误响应:驱动程序无法对端点db上的外部连接进行编程(44309324c7301ee0bba984b7bfee01201939c809b98f3d10333258d09d243931):启动userland代理时出错:绑定0.0.0.0:3306失败:端口已分配错误:无法启动容器:db

D4W版本1.13.0(9795)

开始研究如何安装旧版本。

我也有同样的问题

# docker-compose -f /etc/docker/docker-compose.yml up -d
Creating influxdb1

ERROR: for influxdb  Cannot start service influxdb: driver failed programming external connectivity on endpoint influxdb1 (a5ebc95f32f72421ae46eb5bdc4e2fbf0c10f43da61188cb75d1322546111c1a): Bind for 0.0.0.0:8086 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
# docker version
Client:
 Version:      1.13.1
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:50:14 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.13.1
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:50:14 2017
 OS/Arch:      linux/amd64
 Experimental: false



md5-a7d154bb42b823b1b35a4de5ba377ae0



# docker-compose version
docker-compose version 1.11.1, build 7c5d5e4
docker-py version: 2.0.2
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016

重新启动docker服务无济于事,与重新启动主机一样。

请忽略先前的输入,因为这是我的错(错别字)

我遇到了同样的问题(openSUSE 42.2)。 删除/var/lib/docker/network/files/local-kv.db文件可解决此问题。

删除/var/lib/docker/network/files/local-kv.db文件并重新启动docker也为我在Ubuntu上解决了此问题

没关系,问题仍然存在

对我来说是酿造nginx。 一旦我停止了它,泊坞窗又工作了。

我在带有UDP端口的OSX上遇到类似的问题,删除local-kv.db似乎不是一个选择,因为即使docker engine / VM停止了,但重启仍然清除了绑定的端口,该端口仍然卡住了。 在OSX方面似乎是一个问题。

$ netstat -na|grep "\.53" <-没有udp端口53绑定

$ docker run -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dnsmasq -d andyshinn/dnsmasq:2.75

$ netstat -na|grep "\.53"
udp4 0 0 *.53 *.* <-好的,现在绑定了

$ docker stop dnsmasq && sleep 2 && docker rm dnsmasq

$ netstat -na|grep "\.53"
udp4 0 0 *.53 *.* <-仍然存在!

$ sudo lsof -i -n -P|grep ":53" <-无输出!

$ netstat -tulnvp udp|grep 53
udp4 0 0 *.53 *.* 196724 9216 1307 0 <-好的,我们有一个pid

$ sudo ps aux|grep 1307 <-没有匹配的pid!

某些老的“僵尸”进程似乎正在保留该端口,但我不知道如何释放它。

OSX 10.11.6

$泊坞窗版本
客户:
版本:17.03.0-ce
API版本:1.26
Go版本:go1.7.5
Git提交:60ccb22
建成:2017年2月23日星期四10:40:59
操作系统/ Arch:darwin / amd64

服务器:
版本:17.03.0-ce
API版本:1.26(最低版本1.12)
Go版本:go1.7.5
Git提交:3a232c8
建成时间:2017年2月28日星期二07:52:04
操作系统/ Arch:linux / amd64
实验性:真实

我只能确认这在多个容器上也正在发生。
OSX
➜〜码头工人版本
客户:
版本:17.03.1-ce-rc1
API版本:1.27
Go版本:go1.7.5
Git提交:3476dbf
建成:2017年3月17日星期五00:27:41
操作系统/ Arch:darwin / amd64

服务器:
版本:17.03.1-ce-rc1
API版本:1.27(最低版本1.12)
Go版本:go1.7.5
Git提交:3476dbf
建成:2017年3月15日星期三20:28:18
操作系统/ Arch:linux / amd64
实验性:真实

几次它通过docker-compose构建自身解决了问题,另一次通过重启docker进程来解决了。

在Mac上为+1。
我尝试删除所有容器并重新启动Docker。 但是它又发生了..

Ubuntu 16.04.2 LTS,Docker版本17.04.0-ce,内部版本4845c56上的类似问题

$ docker run -p IP:80:3000 --link tribeca-mongo:mongo --name tribeca -d tribeca
29a0cac17720e203e4392b281460732dc5fe43c72e34bc7365760f8bba9dc348
docker: Error response from daemon: driver failed programming external connectivity on endpoint tribeca (54911841811bf7fb7b8b6b866eae2b790fe1b8b3bd18ccd0bb2089b565538c6c): Error starting userland proxy: listen tcp IP:80: bind: cannot assign requested address.

Ubuntu的同样的问题

Mac 10.12.3相同的问题

Windows 10,相同的问题

Mac 10.12.3(16D32),相同问题
错误:启动项目时遇到错误。

Windows 10,相同的问题

码头工人信息
货柜:4
跑步:3
已暂停:0
已停止:1
图片:7
服务器版本:17.03.1-ce
存储驱动程序:overlay2
支持文件系统:extfs
支持d_type:true
本机覆盖差异:true
记录驱动程序:json-file
Cgroup驱动程序:cgroupfs
外挂程式:
数量:本地
网络:网桥主机ipvlan macvlan空覆盖
群:无效
运行时:runc
默认运行时:runc
初始化二进制文件:docker-init
容器版本:4ab9917febca54791c5f071a9d1f404867857fcc
runc版本:54296cf40ad8143b62dbcaa1d90e520a2136ddfe
初始版本:不适用(预期:949e6facb77383876aeff8a6944dde66b3089574)
安全选项:
seccomp
个人资料:默认
内核版本:4.9.13-moby
操作系统:Alpine Linux v3.5
OSType:Linux
架构:x86_64
CPU:4
总内存:6.538 GiB
名称:白鲸
ID:HVV7: ECOB:GSCQUHGE:MUHA :GVD5:KS3W:YVJ5:DJ5E: AJIM:OHMR :344T
Docker根目录:/ var / lib / docker
调试模式(客户端):false
调试模式(服务器):true
文件描述符:36
Goroutines:39
系统时间:2017-05-11T09:41:16.7020554Z
EventsListeners:0
注册表: https
实验性:真实
不安全的注册表:
127.0.0.0/8
注册表镜像:
https://mhihpv4t.mirror.aliyuncs.com
启用实时还原:false

只需运行: docker run -d -p 3142:3142 --name blaName Bla_imageID
没有ip,然后运行docker container ls拥有IP地址,然后连接到它。

对我来说,它有效! 在MAC上的新版本的docker上

对于那些想要指定特定地址的人

创建您的docker网络:
docker network create --subnet=172.18.0.0/16 mynet123

然后只需运行图像(我将以ubuntu为例)
docker run --net mynet123 --ip 172.18.0.22 -it ubuntu bash

在Windows Docker + WSL上也有同样的问题,本文帮助解决了这一问题:
https://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/

这是最终在我的Mac上对我有用的东西:
sudo /usr/sbin/apachectl stop
然后您可以通过运行ps -ef | grep httpd来确定httpd不存在

在Windows 10上存在相同的问题。仅通过重新启动Docker即可解决(重新启动计算机无效)。

我重新启动了docker并且它起作用了
sudo service docker stop
然后
sudo service docker start

通过docker-compose在ubuntu 16.04上也是如此。
# docker -v Docker version 17.03.1-ce, build c6d412e

重新启动docker daemon可以,但是有点遗憾。

此问题可能与libnetwork有关。 我做了一个PR(https://github.com/docker/libnetwork/pull/1794)。 希望对您有所帮助。

我发生了这种事。 当我在Elevated Powershell提示符下执行netstat -an时,端口映射没有显示,尽管我没有在VM中尝试相同的操作。 我必须重新启动Docker以进行Windows修复。 这也会重新创建基础VM。

尝试这可能很明显,但是我遇到了这个错误,但是我重新启动了Docker本身,然后启动了容器,错误消失了。

相同的错误-相同的补救措施-在Mac上重新启动Docker,然后重新运行命令,它正常工作。

我的CI系统上一直存在此问题-由于此错误,“随机”构建已损坏。 几周前它运行良好,然后开始随机出现。 重新启动docker似乎有所帮助,但是对于CI系统而言,这仍然是不可靠的解决方案。
可悲的是,当它开始发生时,我手头上没有任何信息,我怀疑当我从“旧的”预感性docker软件包更新到docker-ce ,但这只是一个猜测

@ mad-raz非常感谢您的解决方案。 我花了几个小时弄清楚了,您的回答才奏效

有时docker-compose无法启动所需的容器,并使端口占用进程监听。.因此,尝试使用列出所有(侦听)端口
lsof -nP + c 15 | grep LISTEN
输出
Dropbox 384 IPv4 0x82c TCP 127.0.0.1:17600(听)
com.docker.slirp 6218 IPv4 0x82c TCP *:5432(听)<< Python 6268 IPv4 0x82c TCP 127.0.0.1:51617(听)
然后杀死com.docker.slirp进程ID(如果它是导致问题的原因)
杀死-9 6218

我在Mac 10.12.5(16F73)上遇到了相同的问题:

Version 17.03.1-ce-mac12 (17661)
Channel: stable
d1db12684b

但是对于Linux上的相同docker映像来说没有问题:

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:    16.04
Codename:   xenial

Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Mon Mar 27 17:14:09 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Mon Mar 27 17:14:09 2017
 OS/Arch:      linux/amd64
 Experimental: false

同样的错误

Docker版本17.06.0-CE,内部版本02c1d87

对我来说,解决方法是停止,删除并重新运行容器。 如果失败,请停止并重新启动docker,然后重试。 如果失败,请重新启动,重建docker映像并重新运行容器。

我只需要停止Apache并再次运行docker-compose。

只需重新启动docker即可为我解决此问题。

我在Windows 10 Pro上遇到此问题,并且我停止了IIS服务,然后可以正常工作!

如果您得到的错误与Redis有关。 确保您没有在后台和/或在启动时运行Windows / Linux / etc的Redis

通过菜单关闭Docker /通过菜单重新启动并不能解决我的问题,因为Docker似乎并没有完全停止。

我运行了sudo pkill -fi docker ,随后重新打开了docker,它已修复。

再次在docker-for-mac上出现问题(在以前的版本17.06.0-ce-mac18(18433)中未出现):
docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 17.09.0-ce Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0 runc version: 3f2f8b84a77f73d38244dd690525642a72156c64 init version: 949e6fa Security Options: seccomp Profile: default Kernel Version: 4.9.49-moby Operating System: Alpine Linux v3.5 OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 7.787GiB Name: moby ID: DTSR:I2Q4:V6L7:XGCE:YFZJ:UASU:47JH:K3K3:ZALX:DJQL:YM5O:GC64 Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): true File Descriptors: 20 Goroutines: 32 System Time: 2017-10-11T08:37:39.082141259Z EventsListeners: 1 No Proxy: *.local, 169.254/16 Registry: https://index.docker.io/v1/ Experimental: true Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false

遇到同样的问题,似乎某些容器仍在运行并阻塞了端口。

做一个“ docker ps -a”来检查您是否正在运行容器
运行“ docker kill $(docker ps -q)”停止所有正在运行的容器

我在Mac版本17.09.0-ce-mac35(19611)中面临相同的问题

尝试通过madjam002在线程上增加解决方案。 如果这不起作用,请导出所有自定义映像,或确保可以使用Dockerfile重建它们,然后完全rmi所有映像,卸载Docker,重新启动,然后重新安装Docker,但是可能再次发生。 解决方法是将您的配置更改为其他端口。 当我这样做时,新端口有时会再次卡住,我必须将配置更改为第三个端口。 目前尚不清楚为什么这种情况发生在某些人而非其他人身上。

在MAC上停止内部apache

须藤apachectl停止

我一直在不断遇到这个问题。 奇怪的是,当尝试访问服务时,我在浏览器中得到ERR_SOCKET_NOT_CONNECTED。 然后我停止该容器,然后尝试再次启动它,即当我收到您报告的错误时。

重新设置Docker引擎可以解决此问题,但不久后又回来了。

经过一番挖掘后,我意识到我的容器可以通过Docker分配的内部IP地址相互通信,但无法与外界通信(甚至是google等)。

这可能在10分钟后或使用2个小时后发生。

我使用的是MacOS High Sierra和最新的Mac版Docker。

@rogoit为我解决了这个问题。 谢谢!

sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist在Mac上对我有用

出现此错误时,我已经成功访问​​了主机中的/ port目录:

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
cd /port/tcp:0.0.0.0:5000:tcp:172.18.0.16:3000  # or whatever file had the file exists error

就我而言,该目录中有一个文件-我认为它被称为ctl或类似名称,在我对该文件运行cat以查看其中的内容后,问题就消失了-文件,在cd ..ls之后,目录也消失了。

然后,我可以运行docker-compose start [service]

版本17.09.0-ce-mac35(19611)
频道:稳定
a98b7c1b7c

macOS 10.13.1(17B1003)

看来这个问题有很多味道。 这是我的:

Windows 10上的Windows Docker。

似乎最新的Windows 10更新(秋季创作者更新,2017)具有新的“功能”。 当您关闭计算机时,它会记住正在运行的内容,因此可以在重新启动时为您启动备份。

这对Windows的Docker造成了严重破坏(并消除了我建立连接之前的数小时时间)。 尝试重新启动docker-compose时,出现了令人恐惧的“驱动程序无法在端点上编程外部连接”。

事实证明,在这种情况下,只需重启Docker即可解决该问题。 马上找不到,因为我重新启动了计算机。 认为这也会重新启动Docker。 不-它以不良状态重构了Docker。

似乎没有办法关闭Win10的这一新功能。
https://answers.microsoft.com/zh-CN/insider/forum/insider_wintp-insider_perf-insiderplat_pc/programs-autostart-after-boot-in-windows-10-fall/09dd8d3e-7b36-45d1-9181-6587dd5d53ab

相反,要“正常”关闭,我们被迫从命令提示符下运行: shutdown / s / t 0或在我忘记这样做时重新启动Docker。

@ biscuit314您对重启有用,如果Windows不能很好地恢复它,或者Docker无法处理Windows的工作方式,那么这会有些问题。

去做就对了;

须藤apachectl停止

我从未在Windows上安装过它,但是在切换到Mac时遇到了此错误。 重新启动Docker并没有任何改变。 解决方案是将Mac中的apache端口从默认80更改为其他端口(并显然重新启动apache)。 此问题消失后。

我知道该线程仍然引起很多讨论,但由于与Compose本身无关,因此我将结束本线程。 正如在多条注释中指出的那样,请确保您没有主机应用程序已经绑定了您要尝试公开的端口(Apache是​​常见的违规者)。

对于仍然来自Google的任何人:对于我的本地开发机,只是DHCP给了我新的租约,而docker服务没有接上,也无法创建网络映射。

不幸的是,所有建议都没有对我有用。 Docker for Mac Edge 18之类的东西。 高山脉。

唯一有效的方法是等待Docker在系统重启后启动然后再运行
$ docker-compose up -d --force-recreate手动。 超级难过。

最后,我将Mac Stable 17的版本降级回Docker,一切再次正常。

在fedora 27中,我可以通过禁用防火墙并重新启动docker来解决此问题。

systemctl stop firewalld
systemctl restart docker

我在AWS Ubuntu 16服务器上遇到了问题。 只是sudo service docker restart解决了我的问题...

在Windows上遇到了问题。 任何端口上的任何服务均无法正常运行,重启docker即可对其进行修复。

是的,Windows版Docker也存在此问题。 重新启动Docker修复了它。

今天和昨天在Docker for Windows上也遇到过多次。 重新启动Docker并没有解决😅

唯一有效的方法是等待Docker在系统重启后启动然后再运行
$ docker-compose up -d --force-recreate手动创建。 超级难过。

那对我也有用。

有什么我可以做的(收集更多日志,发送诊断ID)来帮助调查此事吗?

现在在Linux上正面临这个问题。 systemctl restart docker为我修复了它。

这里同样的问题。 当我重新启动Docker并且端口被释放时

我正在使用Windows 10.0.16299.125,适用于Windows 17.12.0-ce(15139)的Docker和Linux容器。 我关闭了Skype ,错误_driver未能在endpoint_上进行外部连接编程。 这是我的docker-compose.yml:

version: '3'

services:
  identity.api:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80"

我已经完全地忘记了我对开始运行的代客。 基本上,在启动docker之前,只需检查每个端口并停止其他任何运行。

我正在修改一些iptables配置。 并遇到此错误。 重新启动docker守护程序修复了它...

Starting 4b77a68f3777_deploy_nginx_1 ... 
Starting 6b96d171e3eb_deploy_database_1 ... 
deploy_fpm_1 is up-to-date
Starting 4b77a68f3777_deploy_nginx_1 ... error

ERROR: for 4b77a68f3777_deploy_nginx_1  Cannot start service nginx: b'driver failed programming external connectivity on endpoint 4b77a68f3777_deploy_nginx_1 (0efc2656fd512a2102e7ab82391048a6f5b9503819139096739d443a5b2553b0):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 443 -j DNAT --to-destination 172.18.0.Starting 6b96d171e3eb_deploy_database_1 ... error

ERROR: for 6b96d171e3eb_deploy_database_1  Cannot start service database: b'driver failed programming external connectivity on endpoint 6b96d171e3eb_deploy_database_1 (39fe9b0f86582e35df2c279dc2619f660008b6c3928e293744e005d5eca8245f):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5432 -j DNAT --to-destination 172.19.0.2:5432 ! -i br-53878ee15994: iptables: No chain/target/match by that name.\n (exit status 1))'

ERROR: for nginx  Cannot start service nginx: b'driver failed programming external connectivity on endpoint 4b77a68f3777_deploy_nginx_1 (0efc2656fd512a2102e7ab82391048a6f5b9503819139096739d443a5b2553b0):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 443 -j DNAT --to-destination 172.18.0.3:443 ! -i br-9c08ee804427: iptables: No chain/target/match by that name.\n (exit status 1))'

ERROR: for database  Cannot start service database: b'driver failed programming external connectivity on endpoint 6b96d171e3eb_deploy_database_1 (39fe9b0f86582e35df2c279dc2619f660008b6c3928e293744e005d5eca8245f):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5432 -j DNAT --to-destination 172.19.0.2:5432 ! -i br-53878ee15994: iptables: No chain/target/match by that name.\n (exit status 1))'

现在在流浪汉盒子上面临这个问题。重新加载的流浪汉盒子问题已修复。

Windows 10相同的问题

Windows 10上的相同问题。
来自守护程序的错误响应:驱动程序无法在端点上编程外部连接
尝试重新启动容器后。

@ gudge25 @magomedov我不确定这是否相关,但是18.03-rc3刚刚发布,并且包含此修复程序。 可能值得更新,以查看该版本是否可以解决人们在此处遇到的问题。

编辑:我刚刚尝试过我的项目,该项目在重启后曾经遭受这个问题的困扰。 经过20分钟的测试,我再也无法重现此问题。

我的解决方案是->将Docker重置为出厂默认值

每次启动计算机时,启动容器,都会看到此错误。
来自守护程序的错误响应:驱动程序无法对端点ea-mysql上的外部连接进行编程(4bf1d5fc80663ac6ceabb68283b7a31860672826709d73aecaeaaa8f50be69ff):启动用户域代理时出错:mkdir / port / tcp:0.0.0.0 :3306: tcp:172.17.0.2 :3306:输入/输出错误
错误:无法启动容器:b

重新启动计算机,再次启动,它可以工作。

PS C:Usersphucnv7>码头工人信息
货柜:1
跑步:0
已暂停:0
已停止:1
图片:2
伺服器版本:18.03.0-ce
存储驱动程序:overlay2
支持文件系统:extfs
支持d_type:true
本机覆盖差异:true
记录驱动程序:json-file
Cgroup驱动程序:cgroupfs
外挂程式:
数量:本地
网络:网桥主机ipvlan macvlan空覆盖
日志:awslogs流利的gcplogs gelf记录日志的json文件日志条目splunk syslog
群:无效
运行时:runc
默认运行时:runc
初始化二进制文件:docker-init
容器版本:cfd04396dc68220d1cecbe686a6cc3aa5ce3667c
runc版本:4fc53a81fb7c994640722ac585fa9ca548971871
初始版本:949e6fa
安全选项:
seccomp
个人资料:默认
内核版本:4.9.87-linuxkit-aufs
操作系统:适用于Windows的Docker
OSType:Linux
架构:x86_64
CPU:2
总内存:1.934GiB
名称:linuxkit-00155d347405
ID:7 SDD:BOPB :ZIQ4:XO2T: AMRA:BGMS :XKB7: EHGH:K73W :2Y4D: SLCW:Z5DX
Docker根目录:/ var / lib / docker
调试模式(客户端):false
调试模式(服务器):true
文件描述符:19
Goroutines:36
系统时间:2018-03-28T01:25:45.5754181Z
事件监听器:1
注册表: https
标签:
实验性:真实
不安全的注册表:
127.0.0.0/8
启用实时还原:false

我想我可能已经知道这个家伙了,这真的很蠢...我在Mac上,有2个独立的用户帐户,都在运行docker。 在另一个帐户上退出docker之后,我回来尝试了lando start命令,它运行得很漂亮。

如果您有MAC,请尝试停止服务器。 我有阿帕奇。
sudo / usr / sbin / apachectl停止

要解决Windows中的以下错误,请重新启动Docker(从任务栏菜单或在“设置/重置”中选择“重新启动Docker ...”选项)

Cannot start service YOUR_SERVICE: driver failed programming external connectivity on endpoint

Windows和docker完全启动后,我无法启动任何容器。 没有等待解决。 从Docker for Win状态栏图标重启Docker即可解决。

引导/重新引导后Docker无法正常工作的时间为100%,在100%的情况下,我必须重新启动Docker守护程序。

编辑:是的, @IGZmanuelMartinVivaldi ,这有效,但是每次主机重新启动时我都必须这样做。 这是compose还是Docker daemon的问题?

@IGZmanuelMartinVivaldi感谢这项工作

@NoICE似乎是从Windows 10 Fall Creators更新开始的问题,但我不知道它将在当前的Spring更新或新的Dockers版本中得到解决。

@IGZmanuelMartinVivaldi我和@NoICE有同样的问题。 Windows完全启动后,我必须一直重新启动docker。 它是在秋季创作者更新和最新版本中。

PS。 我正在使用docker compose,我的任何docker compose文件都使用版本2。

@namerci在这里同样的问题。 Windows完全启动后,需要手动重新启动docker。

同样在这里 :(
重新启动Windows的Docker或有时停止容器,然后docker system prune可以工作

这里同样的问题

我试图在过去两天解决相同的问题,但到目前为止没有成功。 它发生在Windows 7,docker工具箱,AWS SAM CLI和Eclipse上。

+1 Windows 10上的相同问题

我的Nginx服务器也有类似的问题。 为了解决这个问题,我必须:

docker stop $(docker ps -qa)

Windows 10具有类似快速启动的功能。 可能这是一个问题。 上
另一台没有快速启动的PC可以正常工作。

wt。,22 maj 2018,20:25 uyykknik rangeoshun [email protected]
餐巾纸:

我的Nginx服务器也有类似的问题。 为了解决这个问题,我必须:

码头工人停止$(docker ps -qa)

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/docker/compose/issues/3277#issuecomment-391092688
或使线程静音
https://github.com/notifications/unsubscribe-auth/ABGaX_NDPkbWf08T2wOkq1PjQz4v-ES3ks5t1FgPgaJpZM4IBfG_

编辑:这是我失明。 我的配置中的端口号有误。

相同的问题-绑定0.0.0.0:18305失败:端口已分配。
但是未分配端口。 使用sudo lsof -i -P -n ,并且在不使用docker的情况下可以毫无问题地声明服务。

版本:18.03.1-ce-mac65(24312)
频道:稳定
93354b38bd

重新启动没有帮助。
重置为出厂默认设置无济于事。

我也面临着同样的问题。
我通过重启docker解决了它。
伙计们,我看到一段时间后,虚拟机可能被您正在运行的端口占用了相同的端口。
因此,通过重新启动泊坞窗,您可以解决此问题。

如前所述。 这不是一个复杂的问题,它是一个Docker问题。 因此,为什么要关闭它。
Docker存储库中对此存在一个未解决的问题

我可以将任何服务附加到任何端口。 由于某种原因,该错误消息向我显示了我无法识别的IP地址。 我重新启动了Docker(Windows),并从那里开始工作。

我在Mac OS Sierra 10.12.6上遇到了同样的问题。 Docker版本18.03.1-ce。

我通过应用@ a14m建议解决了它:
Soution
lsof -nP +c 15 | grep LISTEN

com.docker.vpnk 35957   18u     IPv4        0t0       TCP *:7501 (LISTEN)
com.docker.vpnk 35957   19u     IPv6        0t0       TCP [::1]:7501 (LISTEN)

找到正在侦听阻塞端口的进程并将其杀死: kill -9 <_process_id_ i =“ 14” /> 。 对我来说是:
kill -9 35957

然后重新启动Docker,一切都很好

在Windows 10上禁用快速启动有帮助

重新启动Docker Works

重新启动docker(通过“重新启动”命令或手动退出并重新启动)对我不起作用。

将Docker重置为出厂默认值

它帮助了我。

它通过重置Docker帮助我。

重新启动Docker对我有用。 (适用于Windows的Docker, Docker version 18.06.1-ce, build e68fc7a

补充一下Ray-Eldath的评论:我很困惑,因为两次重启计算机都无法正常工作(相同的版本:对于Windows为18.06.1-ce),并且肯定地重启计算机也足以算是重启Docker,对吗? 所以我想重新启动并不能解决问题,对吗? 好吧,不,哈哈。 我实际上去了Docker,然后单击“重新启动”,现在它可以工作了。

编辑:哦,有趣,现在我知道为什么发生了(可能)。 重新启动计算机实际上造成了这个问题。 看一下这个:

https://stackoverflow.com/questions/40668908/running-docker-for-windows-error-when-exposed-ports

相关报价:

最新的Windows 10更新(Fall Creators Update,2017)具有新的“功能”。 它会自动启动上次关闭时正在运行的所有应用程序。

这将Docker重构为Windows处于不良状态。 这使得这些端口似乎已被其他人使用-这本身就是鬼。 这解释了为什么即使我停止/启动了容器,甚至重新启动了那些端口,这些端口仍在使用中!

鉴于此,我仍然怀疑18.06.1-ce Windows更新,因为在我更新到该更新之前这对我来说不是问题。

我在笔记本电脑和台式机上都安装了Windows 10 Pro,但问题完全相同。 我当前正在运行版本:18.06.1-ce,但是至少最近的两个先前版本具有相同的行为。 这是一个一致且易于重现的问题,发生在非常常见的配置上。

我们都是在做错什么,还是需要修复?

您也可以在OSX上使用ACTIVITY MONITOR进行检查。 当另一个用户登录并使用Docker时,我看到了此问题。 终止进程或注销,它将起作用。

我在使用nginx的Windows的docker上发生了这种情况。 我重新启动了docker,现在看不到它。 当然,如果删除然后为nginx创建一个新容器,它将可能在那里。

我在Windows 10上遇到了相同的问题(在端口80上启动Nginx反向代理),这可能是由以前的虚拟盒子安装引起的。

将Docker重置为出厂默认设置(通知区域->设置->重置中的右键单击图标)为我修复了它。

为我重启docker work。 在Windows 10上

thx @ballmdr ,对我也可以。

我遇到了同样的问题。 IIS正在使用端口80。

1)点击运行,输入-'inetmgr',这将打开IIS
2)在操作上(右上)-单击“停止”
3)Docker是否再次运行

更新docker-compose后,我在MAC moJave上遇到了同样的问题。 只需重新启动docker即可为我

同样在这里,我有macOS Mojave并重新启动已解决的问题。

@makproductions谢谢。

我经常在Windows上定期收到此问题,然后重新启动Docker解决了该问题。

Ubuntu 18.04,重启docker解决了这个问题

Windows上的18.06.1-ce-win73 (19507) Plase问题仍然存在,请重新打开它。

通常会发生,因为postgresql正在运行,并使用端口5432尝试停止服务并运行docker-compose up --build,以便它将进行初始化。

sudo服务postgresql停止
docker-compose up --build

应该管用

madjam002

1.docker rm -f所有容器
2.docker network rm网络接口。
3. sudo rm /var/lib/docker/network/files/local-kv.db

我现在尝试了此方法,但我遇到了另一个问题docker: Error response from daemon: failed to update store for object type *libnetwork.endpointCnt: Key not found in store. 。 如何解决这个问题,您能建议我...。谢谢。

我知道该线程仍然引起很多讨论,但由于与Compose本身无关,因此我将结束本线程。

这是一个Docker问题-不是docker-compose问题。 这个问题已经解决,因此不会受到任何关注。 在主要docker存储库中已经打开了几个问题。 评论可能应该去那里:

参见https://github.com/docker/for-win/issues/2722
https://github.com/docker/for-win/issues/1967

@ shin-是否应该将其锁定?

在以下情况下出现相同的错误:
Docker 18.06.1,Docker Compose 1.22.0,Ubuntu 18.04

为d1df6864f98d2599_api_1启动d1df6864f98d2599_api_1无法启动服务api:驱动程序无法对端点d1df6864f98d2599_api_1上的外部连接进行编程(6b3f4a9c68d6858ace2b39a0296ed41620ff3007b14c2379b5393972已分配端口:0.00.0:0.00.0):已为Bin:0.00.0:0.0:22:37d539:分配给端口:0.00.0:22:bd3d3d4f9b9f14d2f3d4f3b4c7f1d已分配了端口0.00.0:b:0.07:14d2f3d3d3d4f4b4c2f3d1d已为端口0.00.0:b分配了0.06:37:3d14f2b14c2379b5393972:已分配了端口0.00.0:0.0:22:37d539d:29:37d539d:已经为0.00.0:2分配了端口0:7db3d4f9b14c2379b5393972:已分配了端口0.00.0 :: d。

当我从命令行使用docker-compose启动容器时,该容器称为src_api_1 ,因为我正在src文件夹中运行命令。

当我从TeamCity运行docker-compose时,该容器称为d1df6864f98d2599_api_1并且收到该错误。

命令是docker-compose -f src/docker-compose-production.yml up -d api

我只是更改了.yaml文件中的端口号,它开始为我工作。

就我而言,这是因为Windows登录密码已更新,而新密码显然未更新至docker。 我必须去docker for Windows->设置->共享驱动器,取消选中共享驱动器,单击应用,然后再次检查并应用,它将提示输入密码。 输入密码后,它又可以使用了。

这继续困扰着我的设置。 重新启动docker不会释放OSX上的端口。 重新启动主机不会释放端口。

我收到相同的错误消息,但是我的问题是由于同时在两个不同的页面上工作引起的。

当从另一个切换到另一个时,我忘记了使用docker-compose,

我也面临着同样的问题,但是经过很长一段时间,我找到了完美的解决方案

  1. 输入docker container ls -a(检查使用该端口号的容器)
  2. 码头集装箱rm -f(通过删除该容器来取消分配端口)
  3. 用端口号关联新容器

@ ronakganatra9嘿,我有一个问题,您在哪里可以在.yaml文件中找到您自己的端口?

PS C:UsersMouazDesktopfernandroidstf-poc> docker-compose up
stf-poc_storage-temp_1_20d132e37939是最新的
stf-poc_dev-triproxy_1_7224046ecd68是最新的
stf-poc_auth_1_f76f43d5e179是最新的
stf-poc_rethinkdb_1_6e5e0628f86c是最新的
stf-poc_triproxy_1_7d61645de13d是最新的
stf-poc_adb_1_53f170a2d9ae是最新的
stf-poc_storage-plugin-apk_1_efbbfa2dc680是最新的
stf-poc_storage-plugin-image_1_ebc249ed0769是最新的正在启动stf-poc_migrate_1_ebc2c2157fdf ...

正在启动stf-poc_migrate_1_ebc2c2157fdf ...已完成

stf-poc_api_1_713c609d74d5是最新的
stf-poc_reaper_1_cca8849d63b8是最新的
stf-poc_websocket_1_a41866f85947是最新的
stf-poc_app_1_db0fc2088323是最新的
正在启动e3e9585e6a3a_stf-poc_provider_1_6961669e5bb1 ...错误

错误:对于e3e9585e6a3a_stf-poc_provider_1_6961669e5bb1无法启动服务提供者:b'驱动程序在端点e3e9585e6a3a_stf-poc_provider_1_6961669e5bb1(6033aa098528aac29e541b1d52303e4106b0d0760b0d7470b0d76e0470b0d7e0b0d7e0b0d76e0b0d0e7e0e0b0d0e7e0e0b0d0e0b0d0b0d0b0d0b0d0b0d0d00d0b00d0b00d0b00d7b0d0b0d00b0d00b0d00b

错误:对于提供程序无法启动服务提供程序:b'驱动程序无法在端点e3e9585e6a3a_stf-poc_provider_1_6961669e5bb1(6033aa098528aac29e541b1d52303e4106c0f7a760222995b4c0b348a7d76941)上对外部连接进行编程失败:错误启动用户权限代理:0'
错误:启动项目时遇到错误。
PS C:UsersMouazDesktopfernandroidstf-poc> docker容器ls
容器ID图像命令创建的状态端口名称
d46b94a05e8b stf-poc_nginx“ /entrypoint.sh” 2分钟前重新启动(1)38秒前stf-poc_nginx_1_4c61f58776f1
6674d0116aa9 openstf / stf:latest “ stf storage-plugin-…” 2小时前大约一分钟3000 / tcp stf-poc_storage-plugin-image_1_ebc249ed0769
df2e7c721d55 openstf / stf:latest “ stf storage-plugin-…” 2小时前大约一分钟3000 / tcp stf-poc_storage-plugin-apk_1_efbbfa2dc680
a697ef5e309b openstf / stf:latest “ stf app --auth-url…” 2小时前大约一分钟3000 / tcp stf-poc_app_1_db0fc2088323
fefaebe9340a openstf / stf:latest “ stf websocket --por…” 2小时前大约一分钟3000 / tcp stf-poc_websocket_1_a41866f85947
8a1fd41fa92d stf-poc_storage-temp“ stf storage-temp-…” 2小时前大约一分钟3000 / tcp stf-poc_storage-temp_1_20d132e37939
c7f48e1b4d74 openstf / stf:latest “ stf reaper dev --co…” 4小时前大约一分钟3000 / tcp stf-poc_reaper_1_cca8849d63b8
293d4cf18ddb openstf / stf:latest “ stf api --port 3000…” 4小时前大约一分钟3000 / tcp stf-poc_api_1_713c609d74d5
257667df032e openstf / stf:最新的“ stf处理器--con…” 4小时前大约一分钟3000 / tcp stf-poc_processor_1_9c46a2ef3b9d
e065f41e2f61 rethinkdb:2.3 “ rethinkdb --bind all” 4小时前大约一分钟8080 / tcp,28015 / tcp,29015 / tcp stf-poc_rethinkdb_1_6e5e0628f86c
522eb78fc46a sorccu / adb:latest “ / sbin / tini-adb-…” 4小时前大约一分钟5037 / tcp stf-poc_adb_1_53f170a2d9ae
44e03f74b098 openstf / stf:latest “ stf triproxy app-…” 4小时前大约一分钟3000 / tcp stf-poc_triproxy_1_7d61645de13d
32f4f65a0d4e openstf / stf:latest “ stf triproxy dev-…” 4小时前大约一分钟3000 / tcp stf-poc_dev-triproxy_1_7224046ecd68
7465e46fd2a0 openstf / stf:latest “ stf auth-mock --app…” 4小时前大约一分钟3000 / tcp`stf-poc_auth_1_f76f43d5e179
```

这是我身上发生的事情,我尝试重新启动并卸载并重新安装,清除现金并恢复出厂设置,它仍然显示这种错误,您是否认为我必须将ADB的端口从5037更改为3000 / tcp?

如果是,我该怎么做?
谢谢 !!

只需重新启动Docker即可。 它为我工作。

只需重新启动Docker即可。 它为我工作。

这也对我有用! 出于某种原因,它在我重新启动PC后不起作用,但是在我单击图标托盘中的“重新启动docker”后才起作用。

只需重启Docker。 它为我工作。

这也为我工作。

是的,重新启动确实可以,但是仍然很烦人,每次我想启动Docker时都必须这样做。

重新启动docker可以解决所有问题,因为重新启动docker会清理所有正在运行的容器。

我再次检查我的docker compose.yml文件,并删除位于docker-compose.yml文件内的容器,无需重启docker。

请享用。

运行以下命令,并获取使用您要终止的端口的容器ID。 使用容器ID,然后使用第二个命令将其删除。

docker ps -a
docker rm container_id

嗨,我正在运行Docker(v 18.09.0),并在启动沙箱代理时收到以下错误。 请帮忙。

C:Program FilesDockerDockerResourcesbindocker.exe:来自守护程序的错误响应:驱动程序无法对端点沙盒代理(fcc9a4c77b0de66ef7e8c8893b6eafb49f8071e7b9c3b1ce1def3a5e1434358d)上的外部连接进行编程编程:启动用户区代理时出错:意外错误:权限绑定为0.0.0.0:50111:

尝试重新安装/重新启动docker / system,删除容器等。
没有任何帮助。

嗨,我正在运行Docker(v 18.09.0),并在启动沙箱代理时收到以下错误。 请帮忙。

C:Program FilesDockerDockerResourcesbindocker.exe:来自守护程序的错误响应:驱动程序无法对端点沙盒代理(fcc9a4c77b0de66ef7e8c8893b6eafb49f8071e7b9c3b1ce1def3a5e1434358d)上的外部连接进行编程编程:启动用户区代理时出错:意外错误:权限绑定为0.0.0.0:50111:

尝试重新安装/重新启动docker / system,删除容器等。
没有任何帮助。

尝试停止docker,然后在管理员模式下再次启动它。 启动后,也请以管理员模式打开电源外壳。
因为错误显示“权限被拒绝”,也许这可以解决您的问题。 我不确定。

重新启动docker服务有助于我解决此问题。

版本18.09.0

嗨,我正在运行Docker(v 18.09.0),并在启动沙箱代理时收到以下错误。 请帮忙。
C:Program FilesDockerDockerResourcesbindocker.exe:来自守护程序的错误响应:驱动程序无法对端点沙盒代理(fcc9a4c77b0de66ef7e8c8893b6eafb49f8071e7b9c3b1ce1def3a5e1434358d)上的外部连接进行编程编程:启动用户区代理时出错:意外错误:权限绑定为0.0.0.0:50111:
尝试重新安装/重新启动docker / system,删除容器等。
没有任何帮助。

尝试停止docker,然后在管理员模式下再次启动它。 启动后,也请以管理员模式打开电源外壳。
因为错误显示“权限被拒绝”,也许这可以解决您的问题。 我不确定。

这不能解决问题,我在管理员模式下启动了终端和docker本身,但仍然抛出此完全相同的错误。

今天有同样的问题。 我运行了docker-compose down并重新启动了似乎可以解决问题的docker服务。

ERROR: for web_1  Cannot start service web: driver failed programming external connectivity on
endpoint web_1 (5694e5627dbac6cd543d65c764d4b9877fc67557b10f6f8a1f1e7170ffdc8314): 
Error starting userland proxy: mkdir /port/tcp:0.0.0.0:8080:tcp:172.19.0.2:8080: input/output error

ERROR: for web  Cannot start service web: driver failed programming external connectivity on 
endpoint web_1 (5694e5627dbac6cd543d65c764d4b9877fc67557b10f6f8a1f1e7170ffdc8314): 
Error starting userland proxy: mkdir /port/tcp:0.0.0.0:8080:tcp:172.19.0.2:8080: input/output error
Encountered errors while bringing up the project.

在Windows 10中重新启动我的docker,然后工作。 ^^

遇到同样的问题。 重新启动Windows的Docker会有帮助。

如果您使用的是Windows,请运行netstat -ab并检查正在使用的端口TCP 0.0.0.0:443 ,对我来说vmware正在使用它,即使我退出了它

重新启动docker并不是最好的解决方案。 (这也是我做的第一件事)

我有同样的问题,可以通过重新启动docker来解决。

刚刚重新启动,它又可以工作了

我在Linux上与18.09.1有相同的问题。 这个问题可以重开吗? 否则,应该打开一个问题以获取更好的错误消息,指示该错误实际上不是它似乎是的docker bug。

如果您仍然期望人们在某个时候重启软件,那么他们只会淘汰docker; 就像没有其他容器系统一样。

重新启动docker仅对我有用。 之后,每当我按下docker run命令时,都会给我同样的错误。 它不是永久固定的。

我正在努力实现的目标:

我只是想在我的centos 7机器上设置LEMP(nginx,php-fpm,MySQL)环境。

命令:

重新启动docker

service docker restart

创建网桥网络

docker network create -d bridge LEMP

运行php-fpm容器

docker run --name php-fpm -v /home/ashish/work/docker/php:/app -p "9000:9000" --network LEMP --rm -d php:7-fpm

在之后的第一个运行命令上,它与以下输出一起使用:

b003815c0ee2fba05aa24b0965871b55ce717fcd56557066acd448519b59498b

iptables -L

链输入(策略丢弃)
目标prot opt源目的地
随时随地接受
接受所有-随时随地状态已确定
接受一切-随时随地状态全新
接受一切-随时随地状态全新
接受icmp-随时随地状态新
接受icmp-随时随地状态新
接受icmp-随时随地状态新
接受icmp-随时随地状态新
接受tcp-任何地方tcp dpt:28082状态新

前进链(策略丢弃)
目标prot opt源目的地

链输出(策略丢弃)
目标prot opt源目的地
随时随地接受
接受所有-随时随地状态已确定
接受tcp-在任何地方192.168.40.17 tcp
接受一切-随时随地状态全新
接受一切-随时随地状态全新
接受一切-随时随地状态全新
接受tcp-任何地方tcp dpt:28082状态新

### If you notice, It has removed my DOCKER chain. Now when i am trying to run my nginx container, It gives me same error:

docker run --name nginx -v /home/ashish/work/docker/nginx/conf/local.conf:/etc/nginx/conf.d/default.conf -v / home / ashish / work / docker / php: / app -p 80:80 --rm -itd --network LEMP nginx


2dab94327ebbfb1849960df440cd8a1ba15b6253471b77838a5dce139b5cccdc

docker:来自守护程序的错误响应:驱动程序无法在端点nginx上编程外部连接(df5852f12bb611dcf0057418e50b3f679efcbd81c91af6679c8e44b8a59fe4bf):(iptables失败:iptables --wait -t filter -A DOCKER!-i br-ee9760e3e -e br-ee9760e3e -p .0.3 --dport 80 -j接受:iptables:该名称没有链/目标/匹配。(退出状态1))。
```

适用于我的解决方法:

Docker版本:

docker -v

Docker version 18.09.0, build 4d60db4

旧机内核版本:

uname -r

3.10.0-957.1.3.el7.x86_64

采取另一台具有不同内核版本的机器:

uname -r

3.10.0-862.2.3.el7.x86_64

o / p

有效。 像上面一样没有发生错误。 一切运行顺利。

我更换了旧机器的内核,并且对我有用。 尽管这对更改内核(尤其是在生产环境中)不利,但这样做并不好。

对于Windows用户:在您的电源设置中禁用“快速启动”,它可以工作!
https://stackoverflow.com/a/47818614

最新的Windows 10更新(Fall Creators Update,2017)具有新的“功能”。 它会自动启动上次关闭时正在运行的所有应用程序。
这将Docker重构为Windows处于不良状态。 这使得这些端口似乎已被其他人使用-这本身就是鬼。 这解释了为什么即使我停止/启动了容器,甚至重新启动了那些端口,这些端口仍在使用中!

重新启动docker可以解决所有问题,因为重新启动docker会清理所有正在运行的容器。

我再次检查我的docker compose.yml文件,并删除位于docker-compose.yml文件内的容器,无需重启docker。

请享用。

这为我工作Thnks! :)

这里同样的问题-在我的情况下,在端口80上运行的apache是​​问题。

上面的其他人提到过netstat,这是一个很好的工具。 Nginx的一个实例正在端口80上运行。我使用了netstat -ano | findstr:80(cmd)或bash >> netstat -ano | grep:80,然后杀死PID

https://stackoverflow.com/a/20724040/7954264

我通过将Windows版本从1803更新到1809来解决了这个问题

停止docker守护程序并以管理员身份启动。

docker rm $(docker ps -a -q)确实为我工作。

抱歉,那个家伙,但是在我的机器上,重新启动计算机是解决方案。 Docker重新启动没有帮助。

我有同样的错误消息,并且在Windows上重新启动了Docker 。 它成功了。

首先,将Windows 10升级到1809。
然后,在Docker设置中关闭“登录时启动Docker桌面”。
最后,手动启动泊坞窗(无需重新启动)。
问题已经解决,并且在我的计算机中运行良好。

对我来说,手动重启docker可以正常工作

在Mac OS Mojave上,我遇到同样的问题,试图用docker-compose调出mailu:

$ docker-compose -p mailu up -d
Creating network "mailu_default" with driver "bridge"
Creating mailu_fetchmail_1 ... 
Creating mailu_redis_1     ... 
Creating mailu_front_1     ... error
Creating mailu_fetchmail_1 ... done
Creating mailu_redis_1     ... done
ERROR: for mailu_front_1  Cannot start service front: driver failed programming external connectivity on endpoint mailu_front_1 (f7085e55644392e76cCreating mailu_antivirus_1 ... done
Creating mailu_admin_1     ... done

ERROR: for front  Cannot start service front: driver failed programming external connectivity on endpoint mailu_front_1 (f7085e55644392e76c6ae5cd6f3be159c58195e0fc85ae8610f2d84d42dbecab): Error starting userland proxy: port is not a proto:IP:port or unix:path: 'tcp:[:'
ERROR: Encountered errors while bringing up the project.
$

以及以下内容:

  • Docker桌面:2.0.0.3
  • 引擎:18.09.2
  • 机器:0.16.1
  • 公证人:0.6.1
  • 凭证助手:0.6.0
  • Kubernetes:v1.10.11

我刚刚重新启动Mac,然后又运行了

$ docker rm $(docker ps -a -q)

如有人推荐。

这是docker-compose.yml中与“ front”服务有关的节:

  front:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-1.6}
    restart: always
    env_file: mailu.env
    logging:
      driver: json-file
    ports:
      - "127.0.0.1:80:80"
      - "::1:80:80"
      - "127.0.0.1:443:443"
      - "::1:443:443"
      - "127.0.0.1:25:25"
      - "::1:25:25"
      - "127.0.0.1:465:465"
      - "::1:465:465"
      - "127.0.0.1:587:587"
      - "::1:587:587"
      - "127.0.0.1:110:110"
      - "::1:110:110"
      - "127.0.0.1:995:995"
      - "::1:995:995"
      - "127.0.0.1:143:143"
      - "::1:143:143"
      - "127.0.0.1:993:993"
      - "::1:993:993"
    volumes:
      - "/Users/rmfuhrer/mailu/certs:/certs"
      - "/Users/rmfuhrer/mailu/overrides/nginx:/overrides"

AFAICT,在docker-compose配置中提到的任何端口上,我听不到任何内容:

$ netstat -a -f inet -p tcp -n | grep LISTEN
tcp4       0      0  *.17500                *.*                    LISTEN     
tcp4       0      0  127.0.0.1.17603        *.*                    LISTEN     
tcp4       0      0  127.0.0.1.17600        *.*                    LISTEN     
tcp4       0      0  *.49178                *.*                    LISTEN     
tcp4       0      0  127.0.0.1.6670         *.*                    LISTEN     
tcp4       0      0  127.0.0.1.8888         *.*                    LISTEN     
tcp4       0      0  *.88                   *.*                    LISTEN     
tcp4       0      0  *.445                  *.*                    LISTEN     
tcp4       0      0  *.22                   *.*                    LISTEN     
$

对我来说,手动重启docker可以正常工作

我也可以确认。

在Windows 10上,我们也遇到了同样的问题。重新启动似乎可以解决问题,但是我们必须在一周内重新启动几次。 是否有针对此的修复程序?

我需要每天重启docker ..真的很想解决这个问题!

我仍然有同样的问题。 如果您在Windows 10中启用了快速启动(默认情况下为启用),则会发生这种情况。您可以将其禁用-> https://www.windowscentral.com/how-disable-windows-10-fast-startup ,然后就不需要每天重新启动docker。 但这只是一个解决方法。

有同样的问题
只需重新启动docker为我修复

对我来说,这是因为其他容器正在使用该端口运行。 我只是在docker-compose.yml更改了端口映射,例如对于memcache容器服务:

从:

  memcache:
    container_name: project_memcache
    image: memcached:latest
    ports:
        - "11211:11211"

到(下一个外部端口11212):

  memcache:
    container_name: project_memcache
    image: memcached:latest
    ports:
        - "11212:11211"

重新启动Docker对我有用

@yedincisenol是的,但是每天都要重新启动有点烦人

我遇到了同样的问题,是的,重新启动可以解决我的问题。 我希望他们能解决这个问题。

重新启动Docker ...就是这样

在Windows上重启docker对我也有用:/

如果您使用的是Mac,而您的docker网络服务器无法启动,则可能是文件共享-苹果为此使用了内置的Apache。 要么...
须藤apachectl停止
或更妙的是,关闭文件共享。

我有与IIS相关的相同问题,所以我已经停止了。

正如@AarashFarahani所说。 我停止了IIS(该项目不需要它),错误消失了。

对于Mac用户:尝试存储httpd,apache服务。

docker rm $(docker ps -a -q)确实为我工作。

不适用于我(Windows 10,Docker版本18.09.2)

➜sudo netstat -nlp | grep 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 501/vmware-hostd tcp6 0 0 :::443 :::* LISTEN 501/vmware-hostd

问题解决了

只需重新启动docker并再次进行部署->为我工作

有同样的问题。

我的解决方法(因为这似乎是唯一的解决方案),只是禁用“登录时启动Docker Desktop”。
但是将其保留在任务管理的启动程序中。

如果在任务管理中找不到它,则可以在以下位置放置快捷方式:
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

因此,我的猜测是Docker使用“登录时启动Docker桌面”的方式不是Windows 10想要的方式。


Docker版本:
18.09.2,内部版本6247962

Windows版本:
Windows 10 Pro Insiders Preview 1903,内部版本18898.1000

这些都不对我有用。 停止服务(如描述这里)最后的伎俩:

net stop docker
net stop com.docker.service
taskkill /IM "dockerd.exe" /F
taskkill /IM "Docker for Windows.exe" /F
net start docker
net start com.docker.service
"c:\program files\docker\docker\Docker for Windows.exe"

单击托盘上的Docker Desktop图标,然后选择Restart ...在Windows 10上对我有用!

泊坞窗:来自守护程序的错误响应:驱动程序无法对端点sad_sanderson上的外部连接进行编程

如果有人使用Docker Desktop
请按照以下步骤操作:(避免重新启动Docker Desktop)

  • 退出Docker桌面
  • 再次启动Docker Desktop
  • 会很好的

我的问题是,我已经在机器上初始化了Docker Swarm,以便进行一些实验。 运行docker swarm leave --force之后,一切恢复正常

每次为此问题重启docker只是一种解决方法。 实际上,它解决了该问题,因为它停止了可能由容器占用的所有端口。 但是真正的问题是报告的端口没有显示在netstatdocker ps命令中,因此确定哪个容器正在使用该端口变得非常麻烦。

如果有人找到除Docker Restart或禁用Fast Startup之外的其他方法,请在此处发布。

对我来说,手动重启docker可以正常工作

我也可以确认。

是的在Win10上就可以了

@dtekchandani

解决方案:只需禁用“登录时启动Docker Desktop”。
但是将其保留在启动程序中(例如,在此处将指向docker的链接复制到您的启动文件夹中:
%USERPROFILE%AppDataRoamingMicrosoftWindows开始菜单程序启动

这将使Docker在登录后稍后启动,并且适用于许多人。

win + r> cmd(以管理员身份运行)> netstat -aon | 更多
然后我们寻找端口为8000的本地地址,记住PID,> ctrl + alt + del转到“ Details”折叠,寻找一个ID为PID的进程>删除任务(完成任务)>重启Docker>并重启(运行) docker-compose。
这应该解决问题
选项2:只需打开docker-compose.yml并将端口从8000更改为其他端口(端口:
-'8000:80')>运行docker

这里有同样的问题,但是重启Docker / Windows / Hyper-V都会导致失败。
这是我从运行脚本中获得的打印输出。
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: driver failed programming external connectivity on endpoint pihole (c3b944c90dc0b7d948c3dd833becc51b754174a56c36272cda325611d9b792f5): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
诊断ID:
5C4CFABD-4AEA-4F67-9016-E9B6D58A3934/20190918072240
初始运行脚本:(如果有帮助的话)
docker run -d --name pihole -p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 80:80 -p 443:443 -v "${DOCKER_CONFIGS}/pihole/:/etc/pihole/" -v "${DOCKER_CONFIGS}/dnsmasq.d/:/etc/dnsmasq.d/" -e ServerIP="${IP}" --restart=unless-stopped --cap-add=NET_ADMIN --dns=127.0.0.1 --dns=1.1.1.1 pihole/pihole:latest
要尝试重新启动容器,我只是在使用
docker start pihole
打印内容似乎表明这是一个权限错误,因此我尝试使用提升的权限同时运行Docker Desktop和Powershell,但是我仍然遇到相同的错误。 当我说相同的时候,我的意思是每次都是逐字记录的。

对于Mac上的用户,请尝试使用以下命令查看进程并停止它们(其他命令对我不起作用):

sudo lsof -iTCP -sTCP:LISTEN -n -P

重新启动Windows对我有帮助。
码头工人2.1.0.3.38240

在MAC OS X MOJAVE上重新启动docker不能为我解决此问题。
我正在尝试公开多个端口,即5066、5086、8021和其他一些端口。

使用sudo运行对我有效。

我的问题是5000端口

$ docker ps

CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                    NAMES
d21a21826483        web                        "watchexec --restart…"   3 weeks ago         Up 28 hours         0.0.0.0:5000->5000/tcp   web_1

然后在停止具有5000个端口的容器后,它对我有所帮助。

$ docker stop d21a21826483

找到了这个线程,以上都不对我有帮助。

我正在运行Ubuntu,必须使用:

sudo service docker restart

我尝试了prune,所有其他命令和docker都确保它没有任何运行,但是重新启动服务后,它们又重新开始工作。

我遇到了同样的问题,尝试了上述方法,但没有一个对我有用。
它的工作原理是重新启动Windows。

对于Windows上的任何人,如果您从睡眠模式唤醒Windows后遇到此问题,则重新启动计算机可以为我解决问题。
关于Windows上的快速增强,以前也有类似的问题,我认为这两个是相关的...

这解决了我在Windows上的问题:

  • docker-compose down
  • 关闭docker桌面。
  • 杀死Docker服务
    image
  • 启动docker,弹出窗口将要求您通过net.exe激活docker服务,接受
  • docker-compose up

重新启动Docker ...就是这样

这是一个很好的解决方法,但是重新启动表明存在错误,因此不应关闭此问题。

对我有用的是将Docker桌面重置为出厂值。

尝试了以上但没有成功。 我通过运行来擦除整个docker缓存来使其工作:

docker ps -aq | xargs docker rm -f && \ docker images -q | xargs docker rmi -f && \ docker volume list -q | xargs docker volume rm -f

3年了,这个错误仍然存​​在并且还不错。

我有同样的错误。 很惊讶这个线程一直运行到现在。

sudo apachectl stop这对我有用,因为似乎Mac上正在运行apache

Windows 10:
码头工人ps -a
泊坞窗rm $(docker ps -a -q)
码头工人组成

我有同样的错误。 很惊讶这个线程一直运行到现在。

这对我有用:

cd /usr/libexec/docker/
ln -s docker-proxy-current docker-proxy
service docker restart

在Oracle Linux上也有同样的问题。 重新启动Docker服务有所帮助。

这解决了我在Windows上的问题:

  • docker-compose down
  • 关闭docker桌面。
  • 杀死Docker服务
    image
  • 启动docker,弹出窗口将要求您通过net.exe激活docker服务,接受
  • docker-compose up

上面的解决方案对我有用,谢谢。

当docker运行时,我在下面看到了这个。
当docker重新启动时,我仍然在下面看到此信息。
当docker服务被终止并重启后,端口占用消失了,docker再次工作。

**netstat -aon|findstr "5601"**
  TCP    0.0.0.0:5601           0.0.0.0:0              LISTENING       9512
  TCP    192.168.6.202:55601    203.208.41.75:443      TIME_WAIT       0
  TCP    [::]:5601              [::]:0                 LISTENING       9512

**tasklist|findstr 9512**
com.docker.backend.exe        9512 Services                   0     10,916 K

我在Ubuntu 18.04上遇到了这个问题,与@ Jason-2020一样,重新启动docker服务也为我在系统中释放了端口。

听起来不合逻辑,只是重新启动服务即可。

(不需要清除任何缓存,旧文件或其他任何内容。)

对于Windows问题很容易可以解决:
只需重新启动docker并尝试再次运行服务器即可。
image

截至今天,使用W10仍然存在此问题。
重新启动docker,仍然有问题。
关闭docker并重新打开,仍然有问题。

没有其他解决方案对我有用:/

截至今天,使用W10仍然存在此问题。
重新启动docker,仍然有问题。
关闭docker并重新打开,仍然有问题。

没有其他解决方案对我有用:/

尝试使用LoiCha的解决方案。 这是唯一对我有效的解决方法。

请注意,在尝试启动新的任务定义时,Amazon ECS(EC2模式)存在此问题。 事实证明,某些其他内容已经在EC2主机的该端口上进行监听。 我停止了该过程,任务定义能够正常启动。

在任务管理器中停止docker服务解决了我在W10上的问题

@ tsantos84当您使用Mac的Docker时,Docker将在VM内运行。

请尝试以下操作(尽管我尚未测试过):

* `docker rm -f $(docker ps -aq)` (will remove all of your containers)

* `docker network rm $(docker network ls -q)` (will remove all of your networks)

* `docker run --rm -v /var/lib/docker/network/files:/network busybox rm /network/local-kv.db`

然后重新启动Mac版Docker,您应该可以+1

谢谢! 它帮助我快速解决了问题。

@ tsantos84当您使用Mac的Docker时,Docker将在VM内运行。
请尝试以下操作(尽管我尚未测试过):

* `docker rm -f $(docker ps -aq)` (will remove all of your containers)

* `docker network rm $(docker network ls -q)` (will remove all of your networks)

* `docker run --rm -v /var/lib/docker/network/files:/network busybox rm /network/local-kv.db`

然后重新启动Mac版Docker,您应该可以+1

谢谢! 它帮助我快速解决了问题。

嗨@ fede-r1c0,我不知道您为什么提到我,也许您想标记其他用户。 无论如何,我很高兴您能解决您的问题。 👍

@jamshid
您可以过帐sudo netstat -nlp | grep 8123的o / p吗? 谢谢。

和sudo服务{nameOfService}停止

我遇到了相同的行为,但是为了覆盖服务,通过创建docker-compose.override.yml 。 使用的文件:

docker-compose.yml

version: '3.2'
services:
  app:
    build:
      context: ./
    ports:
     - "8000:80"
    volumes:
     - ./:/app

docker-compose.overrride.yml

version: '3.2'
services:
  app:
    ports:
     - "8001:80"

这给了我下面的意外错误:

ERROR: for my_app_1  Cannot start service app: driver failed programming external connectivity on endpoint my_app_1 (9235372fe636fba32be67f9f101a3432139c691a41fc6d207e53c98e25139a29): Bind for 0.0.0.0:8000 failed: port is already allocated

ERROR: for app  Cannot start service app: driver failed programming external connectivity on endpoint my_app_1 (9235372fe636fba32be67f9f101a3432139c691a41fc6d207e53c98e25139a29): Bind for 0.0.0.0:8000 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.

我预计, ports指令在docker-compose.override.yml将覆盖在同一docker-compose.yml (的8000我的计算机上的端口已经被其他应用程序分配的,这就是为什么我尝试了覆盖),但没有发生,这是错误的,似乎是一个错误。

操作系统: Windows 10
码头工人: 19.03.12, build 48a66213fe

就我而言,该问题是由于在本地但在容器中运行consul而引起的。

对我来说,它与防火墙有关,在CentOS 7上,正常工作时运行docker,然后停止使用防火墙或只是重新启动它,现在尝试重新启动该docker容器,失败并出现此错误。 重新启动docker服务,然后重试...。

我遇到了相同的行为。
这解决了我在centos7上的问题:
ps -ef | grep docker
kill the "...dockerd -H fd:// --containerd=/run/containerd/containerd.sock" process

找到了这个线程,以上都不对我有帮助。

我正在运行Ubuntu,必须使用:

sudo service docker restart

我尝试了prune,所有其他命令和docker都确保它没有任何运行,但是重新启动服务后,它们又重新开始工作。

谢谢! FK,我花了整天的时间来解决这个问题。
到2020年,这是4年,这个问题仍然存在。 WTF

此页面是否有帮助?
5 / 5 - 1 等级