【发布时间】:2018-03-03 02:37:50
【问题描述】:
我有一个 jenkins 容器正在运行,并希望在容器提交中隔离它的配置。唯一的问题是 docker 不会提交已安装卷的更改 - 所以我必须卸载它们。
有没有办法让 docker 挂载卷并提交目录的更改?
我了解了卷绑定的 readonly 选项。这可能有帮助吗?
【问题讨论】:
标签: docker docker-container docker-image
我有一个 jenkins 容器正在运行,并希望在容器提交中隔离它的配置。唯一的问题是 docker 不会提交已安装卷的更改 - 所以我必须卸载它们。
有没有办法让 docker 挂载卷并提交目录的更改?
我了解了卷绑定的 readonly 选项。这可能有帮助吗?
【问题讨论】:
标签: docker docker-container docker-image
很遗憾,此功能不可用。它已被多次提出,但未被开发人员接受。主要原因是便携性;卷不应该是图像的一部分,而是存储在图像之外。
但是,您仍然可以间接实现相同的目标。
docker commit 命令提交您的容器。启动一个新的虚拟容器,该容器使用您尝试备份的容器中的卷。
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
或解压卷备份并将其作为绑定安装安装在从容器提交映像创建的新容器上
【讨论】: