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
使用 apt list --installed | grep 'docker'
命令 查看是否有 docker
由此可以判断已经安装了两个 docker
, 所以存在着冲突
2.2 查看当前的 docker
命令是 apt
的还是 snap
的
使用命令 docker info |grep "Docker Root Dir"
查看
若输出为 Docker Root Dir: /var/snap/docker/common/var-lib-docker
则是 snap
的
若输出为 Docker Root Dir: /var/lib/docker
则是 apt
的