我有一个 jenkins 容器正在运行,并希望在容器提交中隔离它的配置。唯一的问题是 docker 不会提交已安装卷的更改 - 所以我必须卸载它们。
有没有办法让 docker 挂载卷并提交目录的更改?
我了解了卷绑定(bind)的 readonly 选项。这可能有帮助吗?
最佳答案
很遗憾,此功能不可用。它已被多次提出,但未被开发人员接受。主要原因是便携性;卷不应该是图像的一部分,而是存储在图像之外。
但是,您仍然可以间接实现相同的目标。
使用
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
或者解压卷备份并将其作为绑定(bind)挂载挂载到从容器提交镜像创建的新容器上
关于docker - 提交已安装卷的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46349071/