在Linux系统中有一部分知识非常重要,就是关于权限的管理控制;Linux系统的权限管理是由uid和gid负责,Linux系统会检查创建进程的uid和gid,以确定它是否有足够的权限修改文件,而非是通过用户名和用户组来确认。同样,在docker容器中主机上运行的所有容器共享同一个内核也可以理解为共享权限管理方式。 Docker容器的权限管理方式分为了三种情况: docker run -v /data/sleep:/sleep -d --name sleep-1 ubuntu sleep infinity 在宿主机中/data/sleep路径新建了leo_zhou文件并在文件写入“docker”,然后进入sleep-1容器 docker exec -it sleep-1 bash
2.限制Docker容器启动的用户 3.使用namespace隔离技术 grubby --args="namespace.unpriv_enable=1 user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)" echo "user.max_user_namespaces=15076" >> /etc/sysctl.conf ②修改/etc/docker/daemon.json配置,新增"userns-remap": "default"选项,default默认就是docker自动创建的用户dockremap,然后重启docker。 |
|