删除Docker容器后,为什么会自动重新创建?

123次阅读
没有评论

问题描述

在使用Docker时,遇到一个问题。他在Ubuntu 16.04桌面上安装了Docker-1.5-1和docker-engine-17.05.0~ce-0~ubuntu-xenial,并安装了openmedicus/phplist。他的目标是删除容器和镜像。但问题是,容器成功删除后,过一段时间后容器会自动以不同的容器ID重新创建。他尝试删除镜像,但遇到了相同的问题。
尝试删除镜像:

$ docker images | grep phplist
openmedicus/phplist             latest              24d3de5279cb        4 months ago        694MB
$ docker rmi openmedicus/phplist:latest --force
Untagged: openmedicus/phplist:latest
Untagged: penmedicus/phplist@sha256:6ac98b2f624eb8cd61b64c4b398650975a876224d5925175c58ff0c1b05a2593
$ docker images | grep phplist    ## Delete Sucessfully

现在尝试删除容器:

$ docker ps
b02b641560e8        24d3de5279cb             "/bin/sh -c /usr/s..."   2 minutes ago       Up 2 minutes        0.0.0.0:8080->80/tcp
$ docker stop b02b641560e8
$ docker rm b02b641560e8 --force   # Remove Sucessfully

然而,容器又自动创建了:

$ docker ps
2c78199dc40c        openmedicus/phplist      "/bin/sh -c /usr/s..."   29 seconds ago      Up 28 seconds       0.0.0.0:8080->80/tcp

用户想知道如何永久删除Docker容器和镜像。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

可能有一些工具或服务在监视您的主机,并从注册表重新拉取镜像并重新启动容器。例如,Watchtower就是这样的工具。您可以检查是否有类似Watchtower的工具在运行,并停止它们。

方案2

还有可能是Docker Swarm导致容器重新创建。您可以查看Docker论坛上的这个帖子获取更多信息。

方案3

还有一种可能性是,您的系统中有一个名为docker-phplist.service的服务在重新创建容器。您可以根据openmedicus/phplist镜像的Docker Hub文档,检查/etc/systemd/system/docker-phplist.service文件是否存在。如果存在,请停止并禁用该服务。
以上是解决此问题的几种可能方案。您可以根据您的具体情况选择适合您的解决方案。

正文完