如何在不使用存储库的情况下将Docker镜像从一台计算机传输到另一台计算机,无论是私有还是公共?
我习惯在VirtualBox中播放并创建自己的图像,当它完成后,我尝试部署到其他机器上以实现真正的用途.
由于它基于自己的映像(如Red Hat Linux),因此无法从Dockerfile重新创建它.
我可以使用简单的命令吗?或另一种解决方案
看来save/export可以达到类似的目的,看看Docker中保存和导出有什么区别?,我更喜欢save我的情况下的命令.
我必须向客户交付在多个容器中运行的应用程序。我可以将所有单个图像导出到文件中
docker save --output app1.tar app2
docker save --output app2.tar app2
...
Run Code Online (Sandbox Code Playgroud)
我的目标是提供一个 ZIP 文件夹,其中只有 docker-compose.yml 和运行容器所需的图像 (app1.tar,app2.tar...)。
假设我有10个泊坞窗图像.在所有10个泊坞窗图像中,许多层都是相似的.
使用时docker save -o,保存的图像是独立的,因此图像尺寸会变大.(~10张图片大小约为9GB)
拉完docker图像后,我探索:
/var/lib/docker
--- aufs (~3GB only)
--- containers (Few KBs)
--- image (Few KBs)
--- ...
--- mnt
Run Code Online (Sandbox Code Playgroud)
无论如何有效地导出图像?
我还尝试将aufs和image文件夹复制粘贴到新主机上.但有些容器无法启动.
检查日志时:
/usr/bin/sudo must be owned by uid 0 and have the setuid bit set
注意:我已经提到了这个.这个问题不重复.它没有解决我上面提到的用例.
我使用以下命令创建了 docker 一个 spring boot 应用程序的 docker 镜像
docker build -f Dockerfile -t myimage
Run Code Online (Sandbox Code Playgroud)
一旦我运行命令“docker images”,我就会看到那个图像。现在我想从我的本地机器上获取该图像并使用以下命令在另一台机器上运行。
docker run -p 8085:8085 myimage
Run Code Online (Sandbox Code Playgroud)
通过物理介质将 docker 映像重新定位到另一台机器的步骤是什么?
/var/lib/docker/images/overlay2/imagedb/content
但该本地包含 6KB 的 .txt 文件。我知道通常 docker 镜像的大小约为 600MB。
谁能帮我找到确切的位置。
谢谢