我已经使用apt-get install xdg-utils在我的Docker容器中安装了xdg-utils
我希望命令xdg-open 'http://www.freedesktop.org/'
在主机浏览器中打开指定的url。
现在它会引发此错误:
root@pravin:/# xdg-open 'http://www.freedesktop.org/'
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: www-browser: not found
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: links2: not found
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: elinks: not found
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: links: not found
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: lynx: not found
/usr/bin/xdg-open: 778: /usr/bin/xdg-open: w3m: not found
xdg-open: no method available for opening 'http://www.freedesktop.org/'
如何让docker使用主机OS的浏览器?
答案 0 :(得分:2)
您不能这样做,因为默认情况下容器不与OS进程/网络名称空间/文件系统共享。
从理论上讲,您可以在主机进程名称空间(--pid=host
),网络主机名称空间(--network=host
)中启动容器,并将所需的FS安装到容器(--volume ..
),但是仍然可以可能还有其他问题。这将需要非常先进的Docker容器技能。
答案 1 :(得分:1)
我认为可能很难附加到宿主进程并打开新窗口。
可以有一些解决方案来克服这一困难。您可以在容器内运行浏览器进程,并与主机共享显示。
主要思想是在主机和容器之间共享DISPLAY
环境变量和网络。在出色的article中,您可以找到更多有关此的内容。
答案 2 :(得分:0)
我相信您正在寻找的答案是xdg-open-server