docker - 将 docker 搬回家后,容器中的权限被拒绝
问题描述
最初 docker 文件系统位于 /var/lib/docker 一切正常,但由于空间限制,我们不得不移动到 /Proj/docker 并且 docker 服务正在运行。
Active: active (running) since Thu 2019-03-28 09:36:59 UTC; 22h ago
Docs: https://docs.docker.com
Main PID: 27007 (dockerd)
Tasks: 27
Memory: 726.5M
CGroup: /system.slice/docker.service
└─27007 /usr/bin/dockerd --selinux-enabled -g /Proj/docker
但在那之后,我被拒绝了许可
[user@host]# sudo docker run -it oraclelinux:7-slim bash
bash-4.2# ls
ls: cannot open directory : Permission denied
**unless I am running with privilage flag set to true**
[user@host]# sudo docker run -it --privileged=true oraclelinux:7-slim bash
bash-4.2# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
Can you please help to resolve this
please find additional info
[user@host ~]$ systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/docker.service.d
└─docker-sysconfig.conf, https-proxy.conf
Active: active (running) since Thu 2019-03-28 09:36:59 UTC; 1 day 2h ago
Docs: https://docs.docker.com
Main PID: 27007 (dockerd)
Tasks: 27
Memory: 726.9M
CGroup: /system.slice/docker.service
└─27007 /usr/bin/dockerd --selinux-enabled -g /Proj/docker
[user@host ~]$ cat /etc/systemd/system/docker.service.d/docker-sysconfig.conf
[Service]
ExecStart=
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
ExecStart=/usr/bin/dockerd \
$OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$INSECURE_REGISTRY \
-g /Proj/docker
[user@host ~]$ cat /etc/systemd/system/docker.service.d/https-proxy.conf
[Service]
Environment="HTTPS_PROXY=http://proxyip:port"
[user@host~]# ls -lrth /Proj/docker
total 56K
drwx------. 4 root root 4.0K Mar 22 07:42 plugins
drwx------. 3 root root 4.0K Mar 22 07:42 image
drwx------. 2 root root 4.0K Mar 22 07:42 volumes
drwx------. 2 root root 4.0K Mar 22 07:42 trust
drwxr-x---. 3 root root 4.0K Mar 22 07:42 network
drwx------. 2 root root 4.0K Mar 22 07:42 swarm
drwx------. 2 root root 4.0K Mar 22 07:42 builder
drwx------. 4 root root 4.0K Mar 22 07:42 buildkit
drwx------. 2 root root 4.0K Mar 28 09:36 runtimes
drwx------. 2 root root 4.0K Mar 28 13:02 tmp
drwx------. 33 root root 12K Mar 29 07:45 overlay2
drwx------. 6 root root 4.0K Mar 29 07:45 containers
解决方案
- 进行复制时,请使用“-p”选项来保留属性。这解决了我这边的问题。
- 确保您的目标分区没有设置“nosuid”选项。检查 /etc/fstab。否则,您将遇到其他权限问题。https://github.com/wodby/docker4drupal/issues/388
现在所有的权限问题都没有了。
推荐阅读
- join - Hive:使用 2 个 ON 条件和 NULL 进行 JOIN 的最佳方法
- spring - 如何在 Spring Webclient 中处理 HTTP 状态码
- java - 在数据库项目中实现设计模式
- r - 在R中,传单不反映纬度或经度?
- php - PHP随机字符串生成奇迹般地生成了相同的字符串
- c# - 返回数组中的最大数
- class - OCaml 中带类的红黑树
- javascript - 问题:“未捕获的 TypeError:无法读取 null 的属性 'getContext'”尝试使用 Javascript 进行编码时。更多信息如下
- php - PHP 和 SVG 中的字符实体
- sql - 通过 Access 表中的更新查询添加前导零