提交已安装卷的内容
我有一个jenkins容器运行,并希望它的configuration孤立在容器提交。 唯一的问题是,docker不会提交已安装卷的更改 – 所以我必须卸载它们。
有没有办法让docker安装卷和提交目录的变化?
我读了有关卷绑定的只读选项。 可能有帮助吗?
不幸的是,这个function是不可用的。 已经提出了很多次,但没有被开发者接受。 主要原因是便携性; 体积不应该是图像的一部分,并存储在图像外部。
但是,你仍然可以间接获得同样的东西。
- 使用
docker commit
命令提交容器。 -
启动一个新的dumy容器,使用您尝试备份的容器中的卷。
docker run -volumes-from <container-name> --name backup -it ubuntu bash
-
一旦进入容器,tar安装该卷的文件夹。
-
将容量tar从虚拟容器复制到您的主机使用
docker cp backup:volume.tar
现在你有多种select:
-
使用Dockerfile创build一个新的图像:
FROM commited-container-image COPY volume.tar . RUN tar -xf volume.tar -C path-to-volume-mount-point &&\ rm -f volume.tar
-
或者取消卷备份,并将其作为绑定挂载安装在从容器提交映像创build的新容器上