重新启动 docker 服务时 Docker 镜像列表发生变化

重新启动 docker 服务时 Docker 镜像列表发生变化

在预装了 Docker 的 Ubuntu 新服务器上,当服务器启动时,“docker images”命令会显示 erichough/kodi 镜像。

$ sudo docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
erichough/kodi      latest              ede3f836a76c        5 weeks ago         554MB

“docker ps”命令没有显示ps。

$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$

但此时有“gitlab/gitlab-ce”正在运行的容器,我可以使用其服务。sudo docker container ls -a命令如下:

CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                                 PORTS                                                                  NAMES
0026317ebf3a        gitlab/gitlab-ce:latest   "/assets/wrapper"        3 hours ago         Up About a minute (health: starting)   0.0.0.0:80->80/tcp, 0.0.0.0:99->99/tcp, 22/tcp, 0.0.0.0:443->443/tcp   mygit
3bd3725ac1c1        gitlab/gitlab-ce:latest   "/assets/wrapper"        47 hours ago        Created                                                                                                       gitlab
4ccc43a8f047        cozy/full                 "/usr/local/bin/supe…"   6 days ago          Created                                                                                                       confident_varahamihira
a50451e519a1        cozy/full                 "/usr/local/bin/supe…"   6 days ago          Created                                                                                                       sharp_curran
76fbaf259b4c        cozy/full                 "/usr/local/bin/supe…"   6 days ago          Created                                                                                                       quirky_bassi
c48667761038        cozy/full                 "/usr/local/bin/supe…"   6 days ago          Created                                                                                                       frosty_lederberg
218a7ce0bcd3        cozy/full                 "/usr/local/bin/supe…"   6 days ago          Exited (255) 6 days ago                0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp                               peaceful_edison

当我重新启动 Docker 服务时,图像列表会发生变化。

$ sudo systemctl restart docker
$



$ sudo docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ce    latest              e6b464b98aff        10 days ago         1.92GB
cozy/full           latest              6579394e9b4f        2 years ago         1.25GB
$ sudo docker ps
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                                 PORTS                                                                  NAMES
bba08cdc44ee        gitlab/gitlab-ce:latest   "/assets/wrapper"   42 hours ago        Up About a minute (health: starting)   0.0.0.0:80->80/tcp, 0.0.0.0:99->99/tcp, 22/tcp, 0.0.0.0:443->443/tcp   mygit

在这个新列表中,我可以看到过去正在运行的容器的图像。为什么会发生这种情况?我该如何合并这两个列表?

答案1

看来您已经删除了发生事件的证据,但很可能容器已停止(它将出现在docker container ls -a包含已停止容器和正在运行容器的 a 中)。如果容器配置为自动重启(这将出现在检查输出中),则重新启动 docker 引擎将重新启动容器。如果镜像不可用于运行容器,那么可以想象 docker 会再次下载它,尽管我很惊讶您能够在定义容器时删除镜像,docker 应该可以阻止这种情况。

另一种可能性是配置了其他工具来部署容器,并且该工具在重新启动 docker 时启动。这可能包括 Swarm Mode 或 Kubernetes 等编排工具。

相关内容