来自守护程序的Docker错误响应:具有名称的服务端点。

时间:2017-05-02 16:42:07

标签: docker

您好我得到了这个奇怪的错误,当我尝试运行一个带有名称的泊坞窗时,它给了我这个错误。

docker: Error response from daemon: service endpoint with name qc.T8 already exists.

但是,没有具有此名称的容器。

> docker ps -a
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

> sudo docker info

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 3
Server Version: 1.12.3
Storage Driver: aufs
 Root Dir: /ahdee/docker/aufs
 Backing Filesystem: extfs
 Dirs: 28
 Dirperm1 Supported: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null bridge host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor
Kernel Version: 3.13.0-101-generic
Operating System: Ubuntu 14.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 64
Total Memory: 480.3 GiB

无论如何我可以把它冲出来吗?谢谢! 甲

8 个答案:

答案 0 :(得分:17)

以防万一其他人需要这个。正如@Jmons指出这是一个奇怪的网络问题。所以我通过强制删除来解决这个问题

docker network disconnect --force bridge qc.T8

A

答案 1 :(得分:10)

TLDR:重新启动docker守护程序或重新启动docker-machine(如果你在mac上使用它)。

所以问题可能是你的网络适配器(虚拟的,停靠者的东西,而不是真实的):快速浏览一下:https://github.com/moby/moby/issues/23302

为了防止它再次发生有点棘手。似乎docker可能存在一个问题,即容器以一个保持网络打开的错误状态代码(例如非零)退出。然后,您无法使用该端点启动新容器。

答案 2 :(得分:6)

docker network inspect <network name>
docker network disconnect <network name> <container id/ container name>

您也可以尝试执行以下操作: 码头工人网络修剪 码头工人修剪 码头工人系统修剪  这些命令将帮助清除僵尸容器,卷和网络。 如果没有命令可用,则请

sudo service docker restart

您的问题将得到解决

答案 3 :(得分:1)

我不久前创建了一个脚本,我认为这应该可以帮助那些使用swarm的人。使用docker-machine这可能会有所帮助。

https://gist.github.com/lcamilo15/7aaaebe71852444ea8f1da5c4c9c84b7

declare -a NODE_NAMES=("node_01", "node_02");
declare -a CONTAINER_NAMES=("container_a", "container_b");
declare -a NETWORK_NAMES=("network_1", "network_2");
for x in "${NODE_NAMES[@]}"; do;
    docker-machine env $x;
    eval $(docker-machine env $x)
    for CONTAINER_NAME in "${CONTAINER_NAMES[@]}"; do;
        for NETWORK_NAME in "${NETWORK_NAMES[@]}"; do;
            echo "Disconnecting $CONTAINER_NAME from $NETWORK_NAME"
            docker network disconnect -f $NETWORK_NAME $CONTAINER_NAME;
        done;
    done;
done;

答案 4 :(得分:1)

docker network rm <network name>

为我工作

答案 5 :(得分:0)

这可能是因为突然删除容器可能会使该端点(容器名称)的网络保持打开状态。

在卸下容器之前,请先尝试将其停止。 docker stop <container-name>。然后docker rm <container-name>

然后docker run <same-container-name>

答案 6 :(得分:0)

重启docker为我解决了这个问题。

答案 7 :(得分:-1)

就我而言,即使reboot也无济于事。事实证明,即使重新启动后,nginx容器也会自动使用要分配的端口80。怎么会来?

root@IONOS_2: /root/2_proxy # netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      1378/rsync
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN      1565/systemd-resolv
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1463/nginx: master
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1742/sshd
tcp6       0      0 :::2377                 :::*                    LISTEN      24139/dockerd
tcp6       0      0 :::873                  :::*                    LISTEN      1378/rsync
tcp6       0      0 :::7946                 :::*                    LISTEN      24139/dockerd
tcp6       0      0 :::5355                 :::*                    LISTEN      1565/systemd-resolv
tcp6       0      0 :::21                   :::*                    LISTEN      1447/vsftpd
tcp6       0      0 :::22                   :::*                    LISTEN      1742/sshd
tcp6       0      0 :::5000                 :::*                    LISTEN      24139/dockerd

不知道nginx: master的含义或来源。实际上1463PID

root@IONOS_2: /root/2_proxy # ps aux | grep "nginx"
root       1463  0.0  0.0  43296   908 ?        Ss   00:53   0:00 nginx: master process /usr/sbin/nginx
root       1464  0.0  0.0  74280  4568 ?        S    00:53   0:00 nginx: worker process
root      30422  0.0  0.0  12108  1060 pts/0    S+   01:23   0:00 grep --color=auto nginx

所以我尝试了这个:

root@IONOS_2: /root/2_proxy # kill 1463

root@IONOS_2: /root/2_proxy # ps aux | grep "nginx"
root      30783  0.0  0.0  12108   980 pts/0    S+   01:24   0:00 grep --color=auto nginx

问题消失了。