也提交已安装卷的内容
Commit content of mounted volumes as well
我有一个 jenkins 容器 运行 并希望在容器提交中隔离它的配置。唯一的问题是 docker 不会提交已安装卷的更改 - 所以我必须卸载它们。
有没有办法让 docker 安装卷 和 提交目录更改?
我读到了有关卷绑定的 readonly 选项。这可能有帮助吗?
很遗憾,此功能不可用。曾多次提出,但未被开发者接受。主要原因是便携性;体积不应该是图像的一部分,并且存储在图像之外。
你仍然可以间接地达到同样的目的。
- 使用
docker commit
命令提交容器。
Start 一个新的虚拟容器,它使用您尝试备份的容器中的卷。
docker run -volumes-from <container-name> --name backup -it ubuntu bash
进入容器后,tar 安装卷的文件夹。
使用
将卷tar从虚拟容器复制到您的主机
docker cp 备份: volume.tar
现在您有多种选择:
使用 Dockerfile 创建新镜像:
FROM commited-container-image
COPY volume.tar .
RUN tar -xf volume.tar -C path-to-volume-mount-point &&\
rm -f volume.tar
或取消tar卷备份并将其作为绑定安装挂载到从容器提交映像创建的新容器上
我有一个 jenkins 容器 运行 并希望在容器提交中隔离它的配置。唯一的问题是 docker 不会提交已安装卷的更改 - 所以我必须卸载它们。
有没有办法让 docker 安装卷 和 提交目录更改?
我读到了有关卷绑定的 readonly 选项。这可能有帮助吗?
很遗憾,此功能不可用。曾多次提出,但未被开发者接受。主要原因是便携性;体积不应该是图像的一部分,并且存储在图像之外。
你仍然可以间接地达到同样的目的。
- 使用
docker commit
命令提交容器。 Start 一个新的虚拟容器,它使用您尝试备份的容器中的卷。
docker run -volumes-from <container-name> --name backup -it ubuntu bash
进入容器后,tar 安装卷的文件夹。
使用
将卷tar从虚拟容器复制到您的主机docker cp 备份: volume.tar
现在您有多种选择:
使用 Dockerfile 创建新镜像:
FROM commited-container-image COPY volume.tar . RUN tar -xf volume.tar -C path-to-volume-mount-point &&\ rm -f volume.tar
或取消tar卷备份并将其作为绑定安装挂载到从容器提交映像创建的新容器上