docker - 在主机上挂载开发 docker 容器目录

标签 docker

我正在使用 docker 进行软件开发,因为我可以将所有依赖项(编译器、库等)捆绑在一个很好的封闭环境中,而不会污染主机。

我通常做事的方式(我想这很常见):我在主机上有一个只包含源代码的目录,它使用 docker 卷安装到开发容器中,我的软件在其中构建并执行。由于卷同步,源中的任何更改都会反射(reflect)在容器中。

这是一个陷阱:当使用代码编辑器时,软件依赖项被认为是损坏的,因为它们无法从主机访问。因此 linting 等...不起作用。

我希望能够将容器中的 /usr/local/include 挂载到主机上,以便正确配置我的编辑器,我可以修复所有警告。

我猜 docker volume 不是这里的解决方案,因为它会覆盖包含的文件系统...

此外,我使用的是 Windows(这里别无选择)因此我的流程是:

Windows > Samba > Linux 主机 > Docker > 容器

而且我不想切换 IDE(VS 代码)。

有什么想法吗?谢谢!

最佳答案

您基本上希望可以将卷从容器反向挂载到主机。不幸的是,这对于 Docker 是不可能的,这里有这个问题的变体:How to mount a directory in docker container to host

您无法将文件从容器复制到主机。至于主机路径是否匹配 /usr/local/include 或必须使用不同的文件夹取决于您的设置。

无需更改 docker 镜像的最简单解决方案是使用 docker cp 复制文件。

否则,您可以通过在入口时让镜像(在安装所有依赖项之后)将文件复制到 /tmp/include 并将主机卷安装到该位置来自动执行此操作。

关于docker - 在主机上挂载开发 docker 容器目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45788253/

相关文章:

docker - 为什么我不能通过Docker-compose将spring-boot容器连接到mysql sql容器?

docker - 即使运行新的容器镜像后,docker容器也使用相同的卷

Docker Compose 不绑定(bind)端口

docker - 无法从 GitHub 在 Docker Hub 上创建构建

docker-compose 添加到 PATH

java - Dockerfile 无法复制指定的本地目录和文件

django - 创建 dockerfile 以构建新图像

docker - Kubernetes 与 Docker Swarm

c# - 运行 Docker 时无法识别命令

docker - 如何使用 docker 容器作为 apache 服务器?