也提交已安装卷的内容

Commit content of mounted volumes as well

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

有没有办法让 docker 安装卷 提交目录更改?

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

很遗憾,此功能不可用。曾多次提出,但未被开发者接受。主要原因是便携性;体积不应该是图像的一部分,并且存储在图像之外。

你仍然可以间接地达到同样的目的。

  1. 使用 docker commit 命令提交容器。
  2. Start 一个新的虚拟容器,它使用您尝试备份的容器中的卷。

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

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

  4. 使用

    将卷tar从虚拟容器复制到您的主机

    docker cp 备份: 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. 或取消tar卷备份并将其作为绑定安装挂载到从容器提交映像创建的新容器上