end*_*and 5 docker docker-for-mac
我有一种情况:
-v /my/local/path/tmp/mycode:/mycode
基本上我希望能够编辑已安装卷中的文件,但不保留这些更改。
我当前的工作流程是使用 dockerfile 创建一个虚拟容器:
ADD . /mycode
Run Code Online (Sandbox Code Playgroud)
然后执行该容器。
然而,随着存储库的增长,执行此步骤所需的时间越来越长,因为我能想到的唯一方法是制作 ~/tmp/mycode 的完整副本,以便能够操作容器中的文件。
我还考虑过安装目录并将其复制到容器内并提交该容器,但这有同样的问题。
有没有办法运行 docker 容器来允许文件编辑,而无需将它们保存在主机上而不复制整个目录?
我使用的是最新的 docker for mac,当前版本为 17.03.1-ce-mac5 (16048)。
这对于 docker 和 Overlay 来说是相当简单的:
docker run --name myenv --privileged -v /my/local/path/tmp/mycode:/mnt/rocode:ro -it ubuntu /bin/bash
docker exec -d myenv /sbin/mount -t overlay overlay -o lowerdir=/mnt/rocode,upperdir=/mycode,workdir=/mnt/code-workdir /mycode
Run Code Online (Sandbox Code Playgroud)
这应该以只读方式挂载目录中的代码,并在容器内创建覆盖层,以便 /mnt/rocode 是只读的,但 /mycode 是可写的。
确保您的内核是 3.18+ 并且您的 /proc/filesystems 中有覆盖。
| 归档时间: |
|
| 查看次数: |
2221 次 |
| 最近记录: |