ubuntu – 如何从docker容器运行Chromium

weixin_38082682 2019-09-12 01:12:28
环境 > MacOS Sierra 10.12.6> Docker版本17.09.0-ce,构建afdb6d4> Ubuntu 16.04> XQuartz 2.7.9 我想将Docker容器中的Chromium浏览器打开到我的Mac桌面上. docker run -i -t ubuntu:16.04 /bin/bash apt-get update apt-get install alsa-base chromium-browser xauth adduser myuser 承诺 docker commit 2862a7bfcc2f acme/mycontainer:0.1 从容器FAIL运行Chrome浏览器作为myuser docker run --user myuser -i -t acme/mycontainer:0.1 /usr/bin/chromium-browser Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted 我打赌还有一点 有什么指针吗? UDPATE – 使用–privileged 删除错误See thread on serverfault但UI未显示 docker run \ --privileged \ --user mysuer \ -i -t acme/mycontainer:0.1 /usr/bin/chromium-browser 还有这个 docker run \ --privileged \ --net host \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e DISPLAY=$DISPLAY \ -e XAUTHORITY=/.Xauthority \ -v ~/.Xauthority:/.Xauthority:ro \ --name chromium \ --user mysuser \ -i -t acme/mycontainer:0.1 /usr/bin/chromium-browser 铬没有出现 更新20171011 docker run \ --privileged \ --net host \ -v /tmp/.X11-unix \ -e DISPLAY \ --name chromium \ --user myuser \ -i -t acme/mycontainer:0.1 \ bash 启动Chromium Gtk:无法打开显示:[…] org.macosforge.xquartz:0错误 $chromium-browser --verbose [37:37:1011/154632.348303:VERBOSE1:breakpad_linux.cc(1978)] Breakpad disabled [1:1:1011/154632.378280:VERBOSE1:zygote_main_linux.cc(537)] ZygoteMain: initializing 0 fork delegates [1:1:1011/154632.378653:INFO:cpu_info.cc(50)] Available number of cores: 4 [37:37:1011/154632.381303:WARNING:browser_main_loop.cc(275)] Gtk: cannot open display: \ /private/tmp/com.apple.launchd.Y2wR3QWw57/org.macosforge.xquartz:0 在我的Mac上编辑了sshd_config sudo vim /etc/ssh/sshd_config X11Forwarding yes X11DisplayOffset 10 XAuthLocation /opt/X11/bin/xauth 在我的Mac DISPLAY上 $env | grep DISPLAY DISPLAY=/private/tmp/com.apple.launchd.Y2wR3QWw57/org.macosforge.xquartz:0 在磁盘上 ls -al /private/tmp/com.apple.launchd.gCYQToI4lb/* srw-rw-rw- 1 joel wheel 0B Oct 11 17:50 /private/tmp/com.apple.launchd.gCYQToI4lb/org.macosforge.xquartz:0=
...全文
352 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38099195 2019-09-12
  • 打赏
  • 举报
回复
我没有Mac试验,但这里有一些一般的建议: X11通常由一个密钥文件保护,该密钥文件只能由拥有该显示器的用户读取,因此使用文件系统权限断言只有能够读取该文件的其他程序才能连接.客户端读取该文件,然后通过套接字将其内容重复到服务器.所以,我认为你是在正确的轨道上 -e XAUTHORITY=/.Xauthority \ -v ~/.Xauthority:/.Xauthority:ro \ 接下来,您将显示SSH X11转发设置,但没有迹象表明您已进入docker容器. SSH转发通常用于: ssh $HOST -X program-which-launches-gui 为了做到这一点,你需要在docker容器中运行一个SSH服务器,这是一个小小的努力…… 接下来,您将显示一个我之前未使用过的DISPLAY = / path / to / socket.如果这是MacOS的发明,那么dockerized Ubuntu可能无法理解这种格式. 最后,您可以使用docker容器内的’strace’命令查看chrome实际上正在尝试做什么. strace chromium-browser 2>&1 | egrep "open|stat|connect|bind" 这可能有助于缩小哪些特定操作在放弃之前失败.

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧