Docker - "no-new-privileges"



我在使用Docker的--security-opt=no-new-privileges标志方面遇到了一个小挑战。

我正试图按照这个指南来构建一个Docker家庭服务器,我成功地完成了所有的工作。但为了让事情顺利进行,我不得不关掉上面的旗子。至于我在哪里启用它,容器不创建,日志显示";standard_init_linux.go:211:exec用户进程导致的"不允许操作"错误

正如我在直接运行容器时得到的那样:

 fabrice@docker-01  ~  1  sudo docker run -ti --security-opt=no-new-privileges --name test fedora:25 bash
standard_init_linux.go:211: exec user process caused "operation not permitted"
 fabrice@docker-01  ~  1 

我认为这不是指南或docker撰写中的错误,而是我的docker安装中的错误。我只是不完全确定如何排除故障或解决它。(我在Ubuntu 20.04 OS安装的初始软件包选择时安装了Docker,并使用本指南将Docker Compose添加到系统中。(

您尝试过使用su终端帐户吗?

Linux/Ubuntu

键入su,然后输入您的用户密码。

macOS

键入su,然后输入alpine(默认密码(或您的用户密码。

此外,请阅读此说明

似乎您可以使用sudo用户密码执行sudo -i以成为root用户,但我不知道这是否与实际的root命令(su(相同

链接

网站海报已回答堆栈溢出Iotos是,已链接>louwersj
URL 回答状态是否有堆栈溢出配置文件
如何在Ubuntu或Linux上使用su/sudo成为超级用户
standard_init_linux.go:211:exec用户进程导致"不允许操作"> 已回答 堆栈溢出 Robgogo 是,已链接
有人知道docker中没有新权限阻止selinux转换的解决方法吗
执行用户进程导致";不允许操作";由于OPTIONS="--selinux enabled"> N/AGitHub否,链接的GitHub

所以我在寻找其他东西时遇到了这个问题&它似乎没有得到回答&语法似乎是错误的。现在,这在当时可能是正确的,但截至2023-02-12年,情况并非如此。

我习惯于在docker compose中使用它,它看起来像这个

version: "3"
services:
container:
image: 'host/container:latest'
container_name: container
environment:
PUID: 1000
PGID: 1000
volumes:
- /docker/host/path:/container/path
- /docker/log/var/log:/var/log:rw
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
security_opt:
- no-new-privileges:true

security_opt:不是一个正在设置的变量,它是一个选项

一个quik搜索发现一个容器使用它,我认为这是正确的格式

docker container run --name rando-doggos --rm -it 
-p 5000:5000 
--user 1500:1500 
--security-opt no-new-privileges 
--memory 128m 
--cpus 0.75 
qualimente/rando-doggos:2018-03-20-1030

这不是我所期望的,有no-new-privileges=true,但它确实分离了选项,然后如我所期望地调用值。CCD_ 13而不是用CCD_。您在这里所做的是调用选项CCD_ 15&则为其设置选项CCD_ 16。我假设如果包含=true,它也会起作用,因为它是一个布尔值&在没有值的情况下调用它应该将其设置为on/true。但我不会证实这一点,这只是我认为正在发生的事情。

我不知道你的容器是否还有其他问题,但这应该能解决这个问题;如果没有其他错误,可以正常工作。

相关内容

最新更新