如何让Docker Desktop启动时使用default上下文(unix:///var/run/docker.sock)
问题:如何让Docker Desktop启动时使用'default'上下文且DOCKER ENDPOINT为unix:///var/run/docker.sock?
现有场景
- 系统启动时,Docker上下文为
default:
执行命令docker context ls,输出如下:
执行NAME TYPE DESCRIPTION DOCKER ENDPOINT default * moby Current DOCKER_HOST based configuration unix:///var/run/docker.sock desktop-linux moby Docker Desktop unix:///home/username/.docker/desktop/docker.sockdocker images命令可见:REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest 9c7a54a9a43c 4 months ago 13.3kB - 执行命令
docker context use desktop-linux切换到desktop-linux上下文,启动Docker Desktop后,执行docker context ls输出如下:
此时NAME TYPE DESCRIPTION DOCKER ENDPOINT default moby Current DOCKER_HOST based configuration unix:///var/run/docker.sock desktop-linux * moby Docker Desktop unix:///home/username/.docker/desktop/docker.sockdocker images列表为空。 - 若删除
desktop-linux上下文,重新创建指向unix:///var/run/docker.sock的desktop-linux上下文,再次启动Docker Desktop后,旧上下文会被重新创建。
解决方法
方法1:修改Docker Desktop图形界面设置
- 打开Docker Desktop,进入设置页面。
- 切换到通用选项卡,取消勾选类似「自动配置CLI上下文」或「从命令行使用Docker CLI」的选项(不同版本表述可能略有区别)。
- 重启Docker Desktop,它将不再自动重建或切换到
desktop-linux上下文。
方法2:手动修改Docker Desktop配置文件
- 先切换回
default上下文:docker context use default - 打开Docker Desktop的配置文件(路径通常为
~/.docker/desktop/settings.json),添加或修改以下配置项:"cliContext": "default", "autoCreateContext": false - 保存文件后重启Docker Desktop,启动后会默认使用
default上下文,且不会自动重建desktop-linux上下文。
方法3:通过环境变量强制指定端点
在你的shell配置文件(比如~/.bashrc或~/.zshrc)中添加以下内容:
export DOCKER_HOST=unix:///var/run/docker.sock
保存后执行source ~/.bashrc(对应你的shell配置文件)使设置生效。这样Docker CLI会优先使用这个指定的套接字,无论Docker Desktop的上下文如何切换,都能保持端点为unix:///var/run/docker.sock。
内容的提问来源于stack exchange,提问作者Illya
相关产品推荐
相关产品推荐

