例如:
我有一个正在运行的容器,上面装有一个卷 . 我想将整个容器与卷内容一起转换为docker镜像 .
我尝试使用
docker commit container-name docker push repo/imagename:tag
但它只推送容器,没有保留卷中的数据 .
有没有办法将已安装的docker卷上的数据转换为docker镜像?
使用以下步骤:
使用 docker cp 将装入点的内容复制到docker主机 .
docker cp
使用相同的图像创建一个新容器 .
使用 docker cp 将内容复制到所需位置的新容器中 .
提交包含内容的新容器并将其推送到您的存储库 .
另一种方法是创建一个 DockerFile ,然后使用指向所需基本图像的 From 指令,并使用 COPY 指令将内容复制到 docker build 时所需的位置(从dockerhost到image) .
DockerFile
From
COPY
docker build
导出或提交都不会保留您的卷数据 . 你有2个选择 .
首先:使用提交将其转换为映像或导出它,然后手动移动卷
第二步:将卷的内容复制到容器上的任何位置,然后提交它,您现在拥有图像中的所有数据 . 然后转移 . 将卷数据移回原来的位置,例如: -
cp /my-volume-dir /my-backup-dir
转移图像后
mv /my-backup-dir /my-volume-dir
2 回答
使用以下步骤:
使用
docker cp
将装入点的内容复制到docker主机 .使用相同的图像创建一个新容器 .
使用
docker cp
将内容复制到所需位置的新容器中 .提交包含内容的新容器并将其推送到您的存储库 .
另一种方法是创建一个
DockerFile
,然后使用指向所需基本图像的From
指令,并使用COPY
指令将内容复制到docker build
时所需的位置(从dockerhost到image) .导出或提交都不会保留您的卷数据 . 你有2个选择 .
首先:使用提交将其转换为映像或导出它,然后手动移动卷
第二步:将卷的内容复制到容器上的任何位置,然后提交它,您现在拥有图像中的所有数据 . 然后转移 . 将卷数据移回原来的位置,例如: -
cp /my-volume-dir /my-backup-dir
转移图像后
mv /my-backup-dir /my-volume-dir