提交已安装卷的内容

xet*_*a11 6 docker docker-image docker-container

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

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

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

yam*_*enk 9

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

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

  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

现在您有多种选择:

  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. 或者解压缩卷备份并将其作为绑定装载挂载到从容器提交映像创建的新容器上

  • 啊好吧我明白了。我需要进入我的容器,存档我想要“移植”的文件,然后将它们复制到新映像中。 (2认同)