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

如何同步Docker default与desktop-linux上下文的数据?

Docker 双上下文资源同步解决方案

核心原因说明

default 上下文连接的是Linux系统原生Docker守护进程(daemon),数据存储在默认路径(通常为 /var/lib/docker);而 desktop-linux 是Docker Desktop自带的独立守护进程,有自己的数据存储目录。两者完全隔离,所以资源无法互相访问。

方案1:迁移资源到 desktop-linux 上下文

导出 default 上下文资源

  1. 切换到目标上下文:
    docker context use default
    
  2. 导出镜像:
    • 先查看所有镜像:docker images
    • 逐个导出指定镜像:
      docker save -o nginx.tar nginx:latest
      
    • 若需批量导出,可借助脚本循环处理(示例):
      for img in $(docker images --format "{{.Repository}}:{{.Tag}}"); do
        docker save -o "${img//:/_}.tar" "$img"
      done
      
  3. 导出容器(需保留容器状态时使用):
    • 查看所有容器:docker ps -a
    • 先将容器转为镜像再导出(保留配置):
      docker commit my-old-container my-old-container-image:latest
      docker save -o my-old-container.tar my-old-container-image:latest
      
    • 仅导出容器文件系统(不保留配置):
      docker export -o my-old-container-fs.tar my-old-container
      

导入到 desktop-linux 上下文

  1. 切换到目标上下文:
    docker context use desktop-linux
    
  2. 导入镜像:
    docker load -i nginx.tar
    
  3. 导入容器镜像(若有):
    docker load -i my-old-container.tar
    # 基于导入的镜像重建容器
    docker run -d --name my-restored-container my-old-container-image:latest
    

方案2:让Docker Desktop复用系统原生守护进程

直接让 desktop-linux 上下文连接系统原生Docker daemon,实现资源共享:

  1. 打开Docker Desktop设置界面
  2. 进入Docker Engine选项卡
  3. 在配置JSON中添加hosts字段(注意与现有配置的逗号分隔):
    {
      "hosts": ["unix:///var/run/docker.sock"],
      # 其他原有配置...
    }
    
  4. 点击"Apply & Restart"重启Docker Desktop
  5. 验证:切换到 desktop-linux 上下文执行 docker ps,即可看到原 default 上下文的容器

注意事项

  • 迁移完成后,可按需清理 default 上下文的冗余资源:docker rmi <镜像名>、docker rm <容器名>
  • 修改Docker Engine配置前,建议备份原配置文件
  • 生产环境优先选择迁移方案,避免修改守护进程配置带来的兼容性问题

内容的提问来源于stack exchange,提问作者Mojtaba Nejad Poor Esmaeili

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:20:52