当前位置: 首页 > 知识库问答 >
问题:

在docker容器中安装带有符号链接的主机目录

祁正浩
2023-03-14

我用这个参数挂载了容器:

-v /home/test/:/home/test

在主机的/home/test内部有一个指向/mnt/文件夹的符号链接。

但是,尽管可以看到链接指向何处,但在容器内部似乎断开了:

root@f93f72b45013:/var/www/html# cd /home/test/ 
root@f93f72b45013:/home/test# ls -lrt 
total 11956 
lrwxrwxrwx. 1 root root 40 Jul 20 15:55 file -> /mnt/mountedfile/
root@f93f72b45013:/home/test# ls -lrt file/*
ls: cannot access file/*: No such file or directory

这甚至可以在docker中实现吗?我不确定是否有办法做到这一点。

我知道我可以直接挂载符号链接指向的位置,但我只是想知道这是否可能。

共有2个答案

通骁
2023-03-14

一种解决方案是让Docker挂载原始文件,但使用readlink-f打印文件的实际位置。这样,您仍然可以在命令中引用符号链接位置,例如。

docker run-it-v$(readlink-f/home/test/):/home/test/

席俊
2023-03-14

符号链接在docker内部是一个很大的挑战。在您的情况下,您可以挂载两个目录:

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

对于要在容器内部和外部工作的符号链接,它们必须是绝对路径并使用完全相同的名称。

通常,符号链接在docker内部不起作用。我发现这很难。

 类似资料:
  • 问题内容: 我使用以下参数安装了容器: -v / home / test /:/ home / test 在主机的/ home / test内部,有一个指向/ mnt /文件夹的符号链接。 但是该链接尽管可以看到指向的位置,但在容器内部似乎已损坏: 甚至有可能在Docker中完成吗?我不确定是否有办法做到这一点。 我知道我可以直接安装符号链接所指向的位置,但是我只是想知道这是否是可能的。 问题答案

  • 编辑:我正在玩安装>1卷,可能发现了一些东西。如果我挂载一个镜像符号链接路径的卷,那么它似乎可以工作。例如,如果我有一个数据文件夹在容器内的/work目录中符号链接到/media/disk1(并且/work映射到主机上的/home),我可以挂载另一个卷,将/media/disk1附加到/work/data(并且/media/disk1符号链接到主机上的/home/data),那么符号链接在容器内工

  • TL;DR:我可以配置一个容器来访问本机VGA,覆盖主机视频输出吗? 我正在考虑处理我的低功耗XenServer(以前是ESXi)白箱来设置一个docker最小安装(例如CoreOS、RancherOs或类似的发行版)。是否可以给一个(可能不是特权)容器对视频输出的独占访问/通过,安装一个可以与所有其他容器一起运行的媒体中心解决方案(例如Kodi),将全屏视频输出到电视,“显然”带有硬件加速视频解

  • 我完全是Docker的不速之客,很抱歉,如果这是一个简单的问题,我似乎在Docker中有一个重大的安装/配置错误。我正在重新安装Ubuntu 20.04和Docker版本20.10.12,build e91ed57。 我从字面上试图遵循初学者从他们的网站和第二个命令是不工作的基本Docker教程。 教程没什么大不了的,我可以把教程换成更新的,但Docker的关键功能似乎没有正常工作。。符号链接。

  • 问题内容: 我在Docker容器中安装并将其与主机同步时遇到问题。我的Docker版本是,而Docker Compose版本是。 我的样子是: 我的: 该应用程序运行良好。源代码已同步。热装也很棒。 我唯一的问题是主机上的文件夹为空。是否可以将Docker容器中的文件夹与主机同步? 另外,我已经找到了此博客文章。作者试图解决我面临的同样问题。问题是,由于我们只是将它们从Docker容器复制到主机,