您好我得到了这个奇怪的错误,当我尝试运行一个带有名称的泊坞窗时,它给了我这个错误。
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
无论如何我可以把它冲出来吗?谢谢! 甲
答案 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
的含义或来源。实际上1463
是PID
:
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
问题消失了。