Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何装载docker容器文件系统?_Git_Docker - Fatal编程技术网

Git 如何装载docker容器文件系统?

Git 如何装载docker容器文件系统?,git,docker,Git,Docker,如何装载docker容器图像,以便使用外部工具修改它们 这意味着:从docker主机装载映像,而不在其上启动容器,作为普通文件系统。我不需要为这个运行容器 我想通过这种方式直接更新图像,然后可能会发送类似于docker commit的内容。使用lxc工具(例如在ubuntu中)非常简单,因为它可以直接在/var/lib/lxc/MYCONTAINER/rootfs中托管 我知道解决办法,但是: 我觉得使用Dockerfile上下文(和ADD)既不方便也不适合:我没有要发送的特定目录,而是使用多

如何装载docker容器图像,以便使用外部工具修改它们

这意味着:从docker主机装载映像,而不在其上启动容器,作为普通文件系统。我不需要为这个运行容器

我想通过这种方式直接更新图像,然后可能会发送类似于
docker commit
的内容。使用
lxc
工具(例如在ubuntu中)非常简单,因为它可以直接在
/var/lib/lxc/MYCONTAINER/rootfs中托管

我知道解决办法,但是:

  • 我觉得使用
    Dockerfile
    上下文(和
    ADD
    )既不方便也不适合:我没有要发送的特定目录,而是使用多种工具组合来只更改特定文件(比如
    rsync
  • 即使
    ADD
    包含某种只适当地向图像添加新文件的算法,我仍然必须将所有文件作为build命令的docker上下文发送
  • 我可以通过调用映像中预装的工具来更新容器映像。但是
    apt get install git
    安装在
    debian
    图像上会使图像的大小加倍。git不会用于生产。使用后移除工具并不总是那么容易,而且感觉不对劲
  • 我可以使用
    -v
    docker build的选项挂载一个充满工具的目录。。。以及它们的依赖关系。如果您需要的不仅仅是一个非常简单的bash脚本,那么这感觉很难

    • 在您的情况下,我会运行一个容器(我知道您反对),然后,例如,将rsync文件发送到/var/lib/docker/deviceapper/mnt/CONTAINERID/rootfs,然后docker提交

      即使运行了容器,您也不会真正使用它,它的图像也不会被非生产工具弄乱。所以你的解决方案很有趣。但是,假设您使用的是
      deviceapper
      驱动程序,我不确定使用
      aufs
      是否容易。这是真的。不幸的是,我没有AUF的经验。祝你好运