为何docker与podman显示相同的容器、镜像及卷?
为何docker ps与podman ps显示相同的容器?
我不清楚具体从何时开始,Docker和Podman似乎“合并”在了一起。执行docker ps时会显示通过Podman创建的容器,甚至包括pod;我也可以用docker删除Podman创建的容器,反之亦然。
我已确认没有别名覆盖docker命令:
$> type docker docker is hashed (/usr/bin/docker) $> docker -v Docker version 27.3.1, build ce12230 $> podman -v podman version 5.0.3
此外,docker volume ls、podman volume ls和docker images、podman images命令的输出结果也完全一致。
环境变量DOCKER_HOST被设置为unix:///run/user/1000/podman/podman.sock。取消设置该变量可解决问题,但仅对当前shell生效,属于临时方案。
我已检查bashrc文件,未发现该变量的设置,请问它可能设置在何处?
我的系统未安装podman-docker命令。
解答
DOCKER_HOST环境变量可能被设置在以下位置,可逐一排查:
- 用户级配置文件:
~/.bash_profile或~/.profile:bash登录shell会加载的文件,常用于配置环境变量~/.bash_login:若存在,bash会优先加载该文件而非.profile~/.zshrc(若使用zsh作为默认shell):对应zsh的用户级配置文件
- 系统级配置文件:
/etc/profile:系统全局登录shell配置,所有用户登录时都会加载/etc/bash.bashrc:bash的系统全局配置文件,非登录shell也会加载/etc/environment:Debian/Ubuntu系系统常用的全局环境变量配置文件,由PAM模块读取/etc/profile.d/目录下的.sh脚本:很多发行版会将应用相关的环境变量设置放在该目录的脚本中
- Podman专属配置:
~/.config/containers/containers.conf:检查文件中[engine]部分的env字段,可能存在自动设置DOCKER_HOST的配置- Podman相关的启动脚本:部分发行版的Podman安装包会附带会话启动脚本,在用户登录时自动设置该变量
- 桌面环境配置:
- 若使用GNOME/KDE等桌面环境,可检查
~/.config/environment.d/目录下的.conf文件(GNOME),或桌面系统设置中的环境变量配置项(KDE)
- 若使用GNOME/KDE等桌面环境,可检查
排查时可先用env | grep DOCKER_HOST确认当前变量值,找到对应设置后修改或删除即可。
内容的提问来源于stack exchange,提问作者aldisti
相关产品推荐
相关产品推荐

