符号 Link 主机到 Docker 容器

Symbolic Link Host to Docker Container

好吧,基本上我想创建一个从我的主机到我的容器的符号 link "ln -s"。

总结一下:主机的主机文件夹 .m2 必须有一个 Symbolic link 到我容器内的 .m2 文件夹,类似于:$ ln -s containerIp:/root/.m2 myContainerAlias

我看过以下帖子,但它们对我没有帮助,因为我不想将文件复制到我的本地主机。

Docker - copy file from container to host

Apache in Docker says: Symbolic link not allowed

https://omarabid.com/symlink-to-a-mounted-volume-in-docker/

已编辑:

我在这里发现了另一个有价值的问题:

谢谢...

如果你想在主机和容器之间共享数据,反之亦然,你需要使用docker volume

有很多方法可以做到这一点,但对于您的情况,最简单的方法是 mount a host directory as a data volume。这是通过带有 docker 的 -v 标志完成的。例如docker run -it -v /path/to/.m2:/root/.m2 ubuntu:latest /bin/bash将运行宿主目录/path/to/.m2'symlinked'的ubuntu:latest镜像到容器目录/root/.m2.

希望对您有所帮助。

听起来您正在尝试优化容器内的 Maven 构建 运行?

docker run -it --rm -w /opt/maven \
   -v $PWD:/opt/maven \
   -v $HOME/.m2:/root/.m2 \
   maven:3.3-jdk-8 \
   mvn clean install

示例

进一步调查这个问题。我想通知我 "solved" 我的问题与以下 post 中的 @Kai Hofstetter 相同:

不,您不能在主机和容器之间创建符号链接。参考

一个解决方案是在开始时安装卷:

docker run -v /home/test/:/home/test -v /mnt/mountedfile:/mnt/mountedfile