无法使用自定义 seccomp 配置文件启动 docker 容器
Unable to launch docker container with custom seccomp profile
无法使用 JSON 启动带有自定义 seccomp 配置文件的 docker 容器。出现以下错误。
sudo docker run --name=alpin1effcon1t -it 453135d09376 --security-opt seccomp:chrome.json
docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "--security-opt": executable file not found in $PATH: unknown.
ERRO[0000] error waiting for container: context canceled
我们已经在各种 docker 平台上进行了尝试,例如 Docker Desktop-WSL、Docker playgrounds 和基于 Amazon Linux 的 EC2。同样的错误。
Docker 关于 EC2 的信息
grep SECCOMP /boot/config-$(uname -r)
CONFIG_HAVE_ARCH_SECCOMP=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP=y
CONFIG_SECCOMP_FILTER=y
Security Options:
seccomp
Profile: default
Kernel Version: 5.10.75-79.358.amzn2.x86_64
Operating System: Amazon Linux 2
docker run
的正确语法是:
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
这意味着在图像 name/id 之后,您可以使用要在容器启动后执行的参数指定命令。换句话说,您覆盖了 Dockerfile
.
中指定的 CMD
在您的示例中,您告诉 docker 在容器启动时执行 --security-opt seccomp:chrome.json
。 --security-opt seccomp:chrome.json
不是正确的 linux 命令(在 $PATH
.
的目录中找不到
话虽如此,您应该做的是交换 --security-opt
和图像 ID 的顺序。因为 --security-opt
是一个 docker run
选项。
sudo docker run --name=alpin1effcon1t -it --security-opt seccomp:chrome.json 453135d09376
无法使用 JSON 启动带有自定义 seccomp 配置文件的 docker 容器。出现以下错误。
sudo docker run --name=alpin1effcon1t -it 453135d09376 --security-opt seccomp:chrome.json
docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "--security-opt": executable file not found in $PATH: unknown.
ERRO[0000] error waiting for container: context canceled
我们已经在各种 docker 平台上进行了尝试,例如 Docker Desktop-WSL、Docker playgrounds 和基于 Amazon Linux 的 EC2。同样的错误。
Docker 关于 EC2 的信息
grep SECCOMP /boot/config-$(uname -r)
CONFIG_HAVE_ARCH_SECCOMP=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP=y
CONFIG_SECCOMP_FILTER=y
Security Options:
seccomp
Profile: default
Kernel Version: 5.10.75-79.358.amzn2.x86_64
Operating System: Amazon Linux 2
docker run
的正确语法是:
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
这意味着在图像 name/id 之后,您可以使用要在容器启动后执行的参数指定命令。换句话说,您覆盖了 Dockerfile
.
CMD
在您的示例中,您告诉 docker 在容器启动时执行 --security-opt seccomp:chrome.json
。 --security-opt seccomp:chrome.json
不是正确的 linux 命令(在 $PATH
.
话虽如此,您应该做的是交换 --security-opt
和图像 ID 的顺序。因为 --security-opt
是一个 docker run
选项。
sudo docker run --name=alpin1effcon1t -it --security-opt seccomp:chrome.json 453135d09376