我在使用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
(相同
链接
URL | 回答状态 | 网站海报是否有堆栈溢出配置文件 | ||
---|---|---|---|---|
如何在Ubuntu或Linux上使用su /sudo 成为超级用户 |
||||
standard_init_linux.go:211:exec用户进程导致"不允许操作"> | 已回答 | 堆栈溢出 | Robgogo | 是,已链接 |
有人知道docker中没有新权限阻止selinux转换的解决方法吗 | 已回答堆栈溢出Iotos是,已链接||||
执行用户进程导致";不允许操作";由于OPTIONS="--selinux enabled"> | N/A | >GitHub | louwersj否,链接的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。但我不会证实这一点,这只是我认为正在发生的事情。
我不知道你的容器是否还有其他问题,但这应该能解决这个问题;如果没有其他错误,可以正常工作。