linux - google-chrome 无法移动到新的命名空间

标签 linux docker google-chrome kubernetes-helm google-chrome-headless

我试图以非 root 用户身份在 docker 容器内运行 google-chrome --headless 以执行一些测试。
每次我尝试启动它时,它都会引发以下错误:

google-chrome --headless

无法移动到新命名空间:支持 PID 命名空间,支持网络命名空间,但失败:errno = 不允许操作
生成 minidump 失败。非法指令

它是一个运行在 k8s 集群中的 docker 容器。
操作系统是 Ubuntu 16.04。

命名空间已启用,用户是非 root

我不想使用 --no-sandbox 选项,因为这是一个安全问题。

我不能使用 docker run --security-opt=syscomp:unconfined 因为它是使用 helm 部署的。

是否缺少我需要在容器本身中为 chrome 设置的系统权限?

最佳答案

在广泛研究互联网后,我想我找到了答案:

沙盒
出于安全原因,Google Chrome 在基于容器的环境中运行时无法提供沙盒。
要在基于容器的环境中使用 Chrome,请将 --no-sandbox 标志传递给 chrome 可执行文件

所以看起来没有比 --no-sandbox 更好的解决方案了在以任何方式受到额外保护的容器内。

关于linux - google-chrome 无法移动到新的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59087200/

相关文章:

javascript - 处理使用 PeerConnection 时处理 ICE 候选人的过程?

linux - 使用 Perl 将压缩数据写入文件,以便稍后可以即时解压缩(作为 STDIN)

linux - 在 Linux 中将 SVN 存储库目录放在哪里?

docker - 如何在Docker中配置端口

python - 在heroku上部署selenium(未检测到Chrome二进制文件)

google-chrome - 为什么 html5 视频循环每次迭代都会创建请求

Linux - 如何在不提取内容并再次应用 tar 的情况下重命名 .tgz 文件中的文件?

android -/proc/pid/maps是什么意思?

docker - Minikube 不从本地 docker 容器注册表中拉取图像

docker - 在 Windows 上通过 Chrome 查看 Tensorboard