【问题标题】:Unable to launch docker container with custom seccomp profile无法使用自定义 seccomp 配置文件启动 docker 容器
【发布时间】:2022-01-04 07:38:59
【问题描述】:

无法使用 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 Desktop-WSL、Docker Playground 和基于 Amazon Linux 的 EC2 等各种 Docker 平台上进行了尝试。同样的错误。

EC2 上的 Docker 信息

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 containers seccomp


    【解决方案1】:

    docker run 的正确语法是:

    docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
    

    这意味着在镜像名称/id 之后,您可以使用要在容器启动后执行的参数指定命令。换句话说,您覆盖了Dockerfile 中指定的CMD

    在您的示例中,您告诉 docker 在容器启动时执行 --security-opt seccomp:chrome.json。并且--security-opt seccomp:chrome.json 不是一个正确的linux 命令(在$PATH 的目录中找不到它。

    话虽如此,您应该做的是交换--security-opt 的顺序和图像ID。因为--security-optdocker run 选项。

    sudo docker run --name=alpin1effcon1t -it --security-opt seccomp:chrome.json 453135d09376
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      • 2019-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多