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

嗨,我得到这个奇怪的错误,当我试图运行一个名字的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 

无论如何,我可以刷新这个呢? 谢谢! 一个。

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

 docker network disconnect --force bridge qc.T8 

一个

TLDR:重启你的docker守护进程或者重新启动你的d​​ocker-machine(如果你正在使用,例如在Mac上)。

所以这个问题可能是你的networking适配器(虚拟的,docker的东西,不是真实的):快速浏览一下: https : //github.com/moby/moby/issues/23302 。

为了防止它再次发生是有点棘手。 看起来docker可能会遇到一个问题,在这个容器中,一个容器退出时会出现一个错误的状态码(例如非零值),从而导致networking处于打开状态。 您无法使用该端点启动新的容器。

我之前创build了一个脚本,我认为这应该可以帮助与群体合作的人员。 使用docker机,这可以帮助一下。

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;