0. 解决办法
卸载有风险, 请提前做好快照或备份
若容器是 apt 的启动的, 则卸载 snap 的 docker
snap remove docker
若容器是 snap 的启动的, 则卸载 apt 的 docker
apt autoremove docker
卸载完后重启服务器
reboot
两种判断方法:
- 查看当前的
docker命令是apt的还是snap的,apt的是看不到snap的容器的, 反之一样 - 检查容器相关的文件的路径, 如数据卷位置, 或者全局搜索容器名称, 若是在
/var/lib/docker/下则是apt, 若在/var/snap/docker/下则是snap的
1. 背景:
使用 apt 下载了 docker 且启动了一个 gitlab 容器, 当时是可以找到这个容器的. 后面过了一段时间之后找不到这个容器了, 但是这个容器的服务确实还在运行, 使用 ps 命令还是能找到的
2. 原因分析:
镜像自带了一个使用 snap 安装的 docker , 再次使用 apt 下载了 docker , 默认的 docker 命令变为 apt 下载的, 此时, 运行与查看镜像都没有问题
后来服务器重启过之后, docker 命令变为 snap 下载的了, 这时使用 docker ps 无法找到 apt 的 docker 启动的镜像
2.1 检查有几个 docker
使用 snap list 命令查看是否有 docker
202305171143486.png
使用 apt list --installed | grep 'docker' 命令 查看是否有 docker
202305171143745.png
由此可以判断已经安装了两个 docker , 所以存在着冲突
2.2 查看当前的 docker 命令是 apt 的还是 snap 的
使用命令 docker info |grep "Docker Root Dir" 查看
若输出为 Docker Root Dir: /var/snap/docker/common/var-lib-docker 则是 snap 的
202305171143225.png
若输出为 Docker Root Dir: /var/lib/docker 则是 apt 的
202305171143945.png










网友评论