在预装了 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 等编排工具。