google-chrome 移动到新命名空间失败
google-chrome Failed to move to new namespace
我正在尝试 运行 google-chrome --headless 在 docker 容器内作为非根用户执行一些测试。
每次我尝试启动它时,它都会抛出以下错误:
google-chrome --headless
无法移动到新命名空间:支持 PID 命名空间,支持网络命名空间,但失败:errno = 不允许操作
无法生成 minidump.Illegal 指令
它是 k8s 集群中的 docker 容器 运行ning。
操作系统是 Ubuntu 16.04.
命名空间已启用,用户不是 root
我不想使用 --no-sandbox 选项,因为这是一个安全问题。
我不能使用 docker 运行 --security-opt=syscomp:unconfined 因为它是使用 helm 部署的。
是否缺少我需要在容器本身内为 chrome 设置的系统权限?
在广泛研究互联网后,我想我找到了答案:
沙盒
出于安全原因,Google Chrome 在基于容器的环境中处于 运行 时无法提供沙盒。
要在基于容器的环境中使用 Chrome,请将 --no-sandbox 标志传递给 chrome 可执行文件
所以看起来没有比 --no-sandbox 更好的解决方案了,尽管它不是很安全,但互联网上有人声称使用“--no-”仍然是安全的沙箱”作为其 运行 在任何方式都受到额外保护的容器中。
尽管这不能回答您的问题,因为您无法设置它 security-opt
,但对于其他有类似问题的人来说,这仍然是一个很好的解决方案。
下载此 chrome.json 文件,其中包含自定义安全配置文件。
将安全配置文件与 --security-opt seccomp=path/to/chrome.json
或 docker-compose 一起使用:
# docker-compose.yml
version: '3'
services:
<service name>:
#
# the service configuration
#
security_opt:
- seccomp=<path to downloaded chrome.json>
见
我正在尝试 运行 google-chrome --headless 在 docker 容器内作为非根用户执行一些测试。 每次我尝试启动它时,它都会抛出以下错误:
google-chrome --headless
无法移动到新命名空间:支持 PID 命名空间,支持网络命名空间,但失败:errno = 不允许操作 无法生成 minidump.Illegal 指令
它是 k8s 集群中的 docker 容器 运行ning。 操作系统是 Ubuntu 16.04.
命名空间已启用,用户不是 root
我不想使用 --no-sandbox 选项,因为这是一个安全问题。
我不能使用 docker 运行 --security-opt=syscomp:unconfined 因为它是使用 helm 部署的。
是否缺少我需要在容器本身内为 chrome 设置的系统权限?
在广泛研究互联网后,我想我找到了答案:
沙盒 出于安全原因,Google Chrome 在基于容器的环境中处于 运行 时无法提供沙盒。 要在基于容器的环境中使用 Chrome,请将 --no-sandbox 标志传递给 chrome 可执行文件
所以看起来没有比 --no-sandbox 更好的解决方案了,尽管它不是很安全,但互联网上有人声称使用“--no-”仍然是安全的沙箱”作为其 运行 在任何方式都受到额外保护的容器中。
尽管这不能回答您的问题,因为您无法设置它 security-opt
,但对于其他有类似问题的人来说,这仍然是一个很好的解决方案。
下载此 chrome.json 文件,其中包含自定义安全配置文件。
将安全配置文件与 --security-opt seccomp=path/to/chrome.json
或 docker-compose 一起使用:
# docker-compose.yml
version: '3'
services:
<service name>:
#
# the service configuration
#
security_opt:
- seccomp=<path to downloaded chrome.json>
见