如何使用docker-compose启动带有privileged权限的容器?
docker compose 配置privileged不生效解决办法
- 第一步:确认yml配置层级正确
privileged参数必须和服务的image、container_name等配置平级,缩进错误、放错配置块都会导致配置不生效,正确写法参考:
version: '3' services: your_service: image: your_image container_name: your_container privileged: true # 此处和上面的image、container_name缩进保持一致 # 其他端口、挂载卷等配置正常写即可
- 第二步:强制重建容器加载新配置
修改完yml直接执行docker-compose up不会更新已经存在的旧容器,默认会复用旧容器的启动参数,不会读取新的yml配置,需要先清理旧容器再启动:
# 停止并删除当前docker-compose管理的旧容器,不会删除本地镜像和挂载的持久化数据 sudo docker-compose down # 重新启动容器 sudo docker-compose up -d
也可以直接用强制重建参数启动,跳过down的步骤:
sudo docker-compose up -d --force-recreate
- 第三步:验证特权模式是否生效
启动后执行以下命令确认配置是否生效:
# 将your_container替换为你实际的容器名 sudo docker exec your_container capsh --print | grep "Current capabilities set"
如果返回的权限值结尾为=ep,说明特权模式已经正常开启。也可以直接在容器内执行需要特权权限的操作验证,比如执行mount -t tmpfs tmpfs /test,没有权限报错就说明配置正常。
内容的提问来源于stack exchange,提问作者Camilo
相关产品推荐
相关产品推荐

