Docker镜像如何在Ubuntu间共享
导读:在 Ubuntu 主机间共享 Docker 镜像的常用方式 离线导出导入:使用 docker save/load 将镜像保存为 .tar 文件,通过 scp/rsync/USB 拷贝到目标机器后导入。适合一次性迁移、无公网/内网仓库的场景...
在 Ubuntu 主机间共享 Docker 镜像的常用方式
- 离线导出导入:使用 docker save/load 将镜像保存为 .tar 文件,通过 scp/rsync/USB 拷贝到目标机器后导入。适合一次性迁移、无公网/内网仓库的场景。
- 私有镜像仓库:在局域网或云上运行 registry:2,源机 docker tag + docker push,目标机 docker pull。适合团队/多机长期协作与版本管理。
- 公共或云仓库:推送到 Docker Hub 或 GitHub Container Registry(GHCR),跨公网分发、权限可控。
- 补充:若只是共享数据而非镜像,可用 SMB/NFS 挂载卷;涉及权限时需对齐 UID/GID 与共享配置。
方式一 离线导出导入 save/load
- 在源主机导出镜像
- 命令:docker save -o myimage.tar myimage:latest
- 拷贝到目标 Ubuntu
- 命令:scp myimage.tar user@target:/tmp/
- 在目标主机导入
- 命令:docker load -i /tmp/myimage.tar
- 验证
- 命令:docker images | grep myimage
- 说明
- 适合无网络或临时迁移;镜像层会被完整打包,体积较大时可先压缩为 .tar.gz 再传输。
方式二 使用私有镜像仓库 registry2
- 启动私有仓库(在任一台 Ubuntu 上)
- 命令:docker run -d -p 5000:5000 --name registry registry:2
- 源主机打标签并推送
- 命令:
- docker tag myimage:latest 192.168.1.10:5000/myimage:latest
- docker push 192.168.1.10:5000/myimage:latest
- 命令:
- 目标主机拉取
- 若仓库使用 HTTP 或自签名证书,需在目标机编辑 /etc/docker/daemon.json 添加:
- { “insecure-registries”: [“192.168.1.10:5000”]}
- 重启 Docker:systemctl restart docker
- 拉取:docker pull 192.168.1.10:5000/myimage:latest
- 若仓库使用 HTTP 或自签名证书,需在目标机编辑 /etc/docker/daemon.json 添加:
- 说明
- 局域网内分发效率高、可版本化管理;生产建议启用 TLS。
方式三 使用公共或云仓库 Docker Hub 与 GHCR
- Docker Hub
- 登录:docker login
- 打标签:docker tag myimage:latest 用户名/myimage:latest
- 推送:docker push 用户名/myimage:latest
- 目标机:docker pull 用户名/myimage:latest
- GitHub Container Registry(GHCR)
- 登录:docker login ghcr.io -u 用户名 -p 个人访问令牌(PAT)
- 打标签:docker build -t ghcr.io/用户名/镜像名:版本 .
- 推送:docker push ghcr.io/用户名/镜像名:版本
- 权限:在 GitHub 的 Packages 设置中设为 Public/Private;私有镜像在生产机需再次登录 ghcr.io 后拉取。
- 说明
- 适合跨公网协作与 CI/CD;GHCR 支持细粒度权限与自动化发布。
常见问题与建议
- 镜像体积较大时,导出为 .tar.gz 可显著减少传输时间;导入前先解压为 .tar 再执行 docker load。
- 使用私有仓库且为 HTTP 时,目标机必须配置 insecure-registries,否则会报连接被拒绝或证书错误。
- 若需要共享的是数据而非镜像,使用 SMB/NFS 挂载卷,并通过 –user UID:GID 或共享端权限设置解决访问问题。
- 跨主机容器通信与镜像共享是不同问题;如需容器互通,需额外配置 Docker 网络(如调整 docker0 网段、路由或覆盖网络)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Docker镜像如何在Ubuntu间共享
本文地址: https://pptw.com/jishu/784011.html
