docker - 提交已安装卷的内容

标签 docker docker-container docker-image

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

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

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

最佳答案

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

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

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

关于docker - 提交已安装卷的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46349071/

相关文章:

docker - 如何从 Windows 中的 Docker 容器访问 "http://localhost"?

docker-compose 在本地和生产环境中的每个微服务?

mysql - 在 MacOS 系统启动时启动 Docker 容器

docker - 如何基于现有镜像创建新的 docker 镜像?

Docker 镜像文件详细信息

asp.net - 我们可以使用 http.sys 在 linux 容器上运行应用程序吗?

typescript - 在Webstorm中从Docker容器远程调试Koa应用程序(Typescript)

docker - 无法 ping 使用 docker-compose 创建的 docker 容器

docker - 如何查看 docker 镜像的日志?

docker - 如何将多个图像(redis + memcached + python)组合到pod的1个单个容器中