提交已安装卷的内容

我有一个jenkins容器运行,并希望它的configuration孤立在容器提交。 唯一的问题是,docker不会提交已安装卷的更改 – 所以我必须卸载它们。

有没有办法让docker安装卷提交目录的变化?

我读了有关卷绑定的只读选项。 可能有帮助吗?

不幸的是,这个function是不可用的。 已经提出了很多次,但没有被开发者接受。 主要原因是便携性; 体积不应该是图像的一部分,并存储在图像外部。

但是,你仍然可以间接获得同样的东西。

  1. 使用docker commit命令提交容器。
  2. 启动一个新的dumy容器,使用您尝试备份的容器中的卷。

    docker run -volumes-from <container-name> --name backup -it ubuntu bash

  3. 一旦进入容器,tar安装该卷的文件夹。

  4. 将容量tar从虚拟容器复制到您的主机使用

    docker cp backup:volume.tar

现在你有多种select:

  1. 使用Dockerfile创build一个新的图像:

    FROM commited-container-image COPY volume.tar . RUN tar -xf volume.tar -C path-to-volume-mount-point &&\ rm -f volume.tar

  2. 或者取消卷备份,并将其作为绑定挂载安装在从容器提交映像创build的新容器上