You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下sudo与非sudo执行docker context ls结果不一致,Docker Desktop不显示容器求助

解决Docker Desktop无法显示容器的问题

问题本质

sudo和普通用户的Docker配置完全隔离:Docker Desktop以普通用户身份运行,使用的是该用户~/.docker目录下的配置;而sudo docker会加载root用户的/root/.docker配置,两者上下文默认不互通,这就是你看不到容器的原因,且sudo下docker context ls仅显示default,是因为root用户的Docker配置里还没添加Docker Desktop对应的上下文。

解决步骤

1. 统一上下文(推荐方案:不用sudo操作Docker)

直接把当前用户加入docker用户组,彻底避免sudo和普通用户的权限隔离问题:

sudo usermod -aG docker $USER

执行完注销并重新登录,之后无需sudo即可直接执行Docker命令,此时Docker Desktop和命令行共用同一上下文,容器会自动同步显示。

2. 验证配置有效性

重新登录后执行以下命令,确认desktop-linux是当前活跃上下文(前面带*标记):

docker context ls

启动一个测试容器验证:

docker run -d nginx

打开Docker Desktop,就能看到这个nginx容器。

3. 若需保留sudo操作(不推荐)

如果一定要用sudo执行Docker命令,需让root用户同步使用Docker Desktop的上下文:

  • 切换到root用户:
sudo su
  • 复制普通用户的Docker上下文配置到root目录:
cp -r /home/你的用户名/.docker /root/
  • 设置root用户的默认上下文为desktop-linux:
docker context use desktop-linux
  • 退出root用户:
exit

之后sudo docker命令就会和Docker Desktop使用同一上下文,容器也能正常显示。

内容的提问来源于stack exchange,提问作者kenyg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:10:33