【问题标题】:Commit content of mounted volumes as well提交已安装卷的内容
【发布时间】:2018-03-03 02:37:50
【问题描述】:

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

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

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

【问题讨论】:

    标签: docker docker-container docker-image


    【解决方案1】:

    很遗憾,此功能不可用。它已被多次提出,但未被开发人员接受。主要原因是便携性;卷不应该是图像的一部分,而是存储在图像之外。

    但是,您仍然可以间接实现相同的目标。

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

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

    【讨论】:

    • 好吧,我明白了。我需要进入我的容器,归档我想要“移植”的文件,然后将它们复制到新映像中。
    • --volumes-from ,缺少一个-一开始,出现错误无法在存储库中找到丢失的图像
    猜你喜欢
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 2013-05-20
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多