当前位置: 首页 > 面试题库 >

提交已装入卷的内容

田兴朝
2023-03-14
问题内容

我有一个jenkins容器正在运行,并且希望在容器提交中隔离其配置。唯一的问题是,码头工人不会提交已安装卷的更改-因此我必须将其卸载。

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

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


问题答案:

不幸的是,此功能不可用。已经提出过很多次,但开发人员并未接受。主要原因是可移植性。卷不应该是映像的一部分,而是存储在映像之外。

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

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

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

  1. 放入容器后,将安装了卷的文件夹放在tar中。

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

泊坞窗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

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


 类似资料:
  • 我们欢迎各类开发者服务、Docker 平台、SaaS 自动化工具与 DaoCloud 对接,我们将为您在这个版块开设介绍页面,并在 DaoCloud 各类市场渠道帮助您宣传。 如希望提交内容,请与我们联系,或直接提 Pull Request。

  • 我在Windows上安装了支持WSL2的Docker Desktop。一切按预期进行。当我使用卷挂载运行容器时,我可以访问该文件夹中的所有windows文件。 不幸的是,docker中的windows共享的性能并不是很好,所以我尝试从wsl机器挂载一条路径。 但是使用的输出只是,而使用的输出是我的主目录。 有人能给我解释一下当我从Windows运行时,这个目录(物理上/在wsl/我的计算机中)在哪

  • 我正在尝试通过docker Compose建立一个单元测试运行时。当我试图通过Docker运行一个npm脚本时-compose节点的行为就好像它在路径上找不到模块: 我认为这一切都很简单,我以前也做过类似的设置,但在Docker for Mac上。这一次我运行Docker For Windows并通过WSL运行命令。我共享了驱动器,并将/mnt/c绑定到/c。 作为另一个参考,我可以在Docker

  • 我试图从数据库中选择数据,更新每个对象,然后在项目管理器中更新数据库。 我试图在每次更新后刷新DAO,但没有任何改变。 该配置非常基本,有一个读写器,提交间隔为100。 读者正在按预期工作: 作者也很基本: 问题是,前100条记录已经提交,但其余的记录没有提交。Spring批处理表显示,它读取所有记录并多次提交,但当我签入数据库时,它只提交一次。 Spring batch的版本是2.2.6。 使现

  • 我的Dockerfile有一个在EntryPoint上运行的脚本。容器计划用我的代码所在的卷挂载运行,一旦容器用卷挂载运行,它需要运行几个命令。 docker run-itd-v/home/user/directory:/my-mount-dir build-container 注意:startup-script.sh包含应该在挂载的目录文件上运行的命令。

  • 我正在运行一个Jenkins集群,其中主集群和从集群都作为Docker容器运行。 主机是在MacOS上运行的最新boot2docker VM。 为了让Jenkins能够使用Docker执行部署,我安装了Docker。从主机到Jenkins容器的sock和docker客户端,如下所示:- 我在将卷安装到在Jenkins容器内运行的Docker容器时面临问题。例如,如果我需要在Jenkins容器中运行