同时提交已装入卷的内容

时间:2017-09-21 16:39:09

标签: docker docker-container docker-image

我有一个jenkins容器正在运行,并希望将它的配置隔离在容器提交中。唯一的问题是docker不会提交已安装卷的更改 - 所以我必须卸载它们。

有没有办法让docker挂载卷提交目录更改?

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

1 个答案:

答案 0 :(得分:7)

不幸的是,此功能不可用。已多次提出但未被开发人员接受。主要的便携性是可移植性;卷不应该是图像的一部分,并存储在图像之外。

然而,你仍可以间接地实现同样的目标。

  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

  5. 现在您有多种选择:

    1. 使用Dockerfile创建新图像:

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

    2. 或者解压缩卷备份并将其挂载为从容器提交映像创建的新容器上的绑定挂载