docker 同时提交已装载卷的内容

2cmtqfgy  于 2023-01-16  发布在  Docker
关注(0)|答案(1)|浏览(77)

我有一个jenkins容器运行,并希望有它的配置隔离在一个容器提交。唯一的问题是,有docker不会提交已安装的卷的变化-所以我必须卸载他们。
有没有办法让Docker挂载卷提交目录的更改?
我读到了关于卷绑定的 readonly 选项。这会有帮助吗?

nnsrf1az

nnsrf1az1#

遗憾的是,这个功能并不具备,它被提出过很多次但都没有被开发者接受,主要原因是可移植性;体积不应该是图像的一部分,而是存储在图像之外。
然而,你仍然可以间接地实现同样的事情。
1.使用docker commit命令提交容器。
1.启动一个新的虚拟容器,该虚拟容器使用您尝试备份的容器中的卷。

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

1.进入容器后,将装入卷的文件夹设置为tar。
1.使用

docker cp backup:<path-to-tar> volume.tar

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

相关问题