zoukankan      html  css  js  c++  java
  • docker用户映射

    实验目的:系统用户映射到docker容器里,使其不再使用root权限

    第一步,修改daemon.json,添加userns-remap如下:

    如果你想指定特定用户可以把default修改为系统用户,如果为default就代表用户分配的权利交给default自动完成

    {
        "registry-mirrors":["https://registry.docker-cn.com","https://l10nt4hq.mirror.aliyuncs.com"],
        "userns-remap": "default"
    }

    第二步,使其生效

    systemctl daemon-reload && systemctl restart docker

    第三步,查看验证,可以看到在我们添加daemon.json之后,系统自动创建出dockremap这个用户,uid:100000,gid:65536,

    [root@VM-0-15-centos ~]# cat /etc/subuid
    dockremap:100000:65536
    [root@VM-0-15-centos ~]# cat /etc/subgid
    dockremap:100000:65536

    第四步,查看/var/lib/docker下生成的文件,可以看到生成了100000.100000这个目录,这个目录,这个目录就是存储我们用户信息的

    [root@VM-0-15-centos ~]# ls -ltr /var/lib/docker/
    total 48
    drwx------  4 root   root   4096 Dec  9 14:28 plugins
    drwx------  3 root   root   4096 Dec  9 14:28 image
    drwx------  2 root   root   4096 Dec  9 14:28 trust
    drwxr-x---  3 root   root   4096 Dec  9 14:28 network
    drwx------  2 root   root   4096 Dec  9 14:28 swarm
    drwx--x--x  4 root   root   4096 Dec  9 14:28 buildkit
    drwx------  2 root   root   4096 Dec  9 14:41 runtimes
    drwx------  2 root   root   4096 Dec  9 14:41 volumes
    drwx------  2 root   root   4096 Dec  9 14:48 tmp
    drwx------  7 root   root   4096 Dec  9 14:50 overlay2
    drwx------  3 root   root   4096 Dec  9 14:50 containers
    drwx------ 13 100000 100000 4096 Dec  9 16:41 100000.100000

    第五步,修改内核参数max_user_namespaces,默认这个参数的值为0,是不允许用用户名称空间的,现在我们给他开启起来,具体设置多少值酌情,当然我们也可以写入到sysctl.conf文件中

    [root@VM-0-15-centos 100000.100000]# sysctl -w user.max_user_namespaces=10000
    user.max_user_namespaces = 10000

    第六步,启动一个容器,卷映射为宿主机的/data/目录映射到容器的/data目录

    [root@VM-0-15-centos 100000.100000]# docker run -d -v /data/:/data centos:centos7.6.1810 sleep 2222
    Unable to find image 'centos:centos7.6.1810' locally
    centos7.6.1810: Pulling from library/centos
    ac9208207ada: Pull complete 
    Digest: sha256:62d9e1c2daa91166139b51577fe4f4f6b4cc41a3a2c7fc36bd895e2a17a3e4e6
    Status: Downloaded newer image for centos:centos7.6.1810
    f4c09761d8d140afcd04694c3778005b2d309d6ff5df3872872b9984728a66a9
    [root@VM-0-15-centos 100000.100000]# 
    [root@VM-0-15-centos 100000.100000]# 
    [root@VM-0-15-centos 100000.100000]# docker ps 
    CONTAINER ID   IMAGE                   COMMAND        CREATED         STATUS         PORTS     NAMES
    f4c09761d8d1   centos:centos7.6.1810   "sleep 2222"   5 seconds ago   Up 3 seconds             vigorous_neumann

    第七步,连接到容器创建一个文件会发现权限不足

    第八步,修改宿主机的/data目录权限

    第九步,接着在容器中创建文件,可以发现,不再报错,然后在看一下文件的属主和属组,你会发现是root

     第十步,接着让我看看宿主机这个文件的属主和属组,可以看到,这个文件只是一个普通用户的文件

  • 相关阅读:
    个人永久性免费-Excel催化剂功能第31波-数量金额分组凑数功能,财务表哥表姐最爱
    个人永久性免费-Excel催化剂功能第30波-工作表快捷操作(批量创建、命名、排序、工作表目录)
    个人永久性免费-Excel催化剂功能第29波-追加中国特色的中文相关自定义函数
    发现用System.Net.Mail发邮件(代码附后),附件稍微大一点就会造成程序假死. 有没有什么简单的解决办法呢? 多谢!!
    上传文件 获取文件名 --360浏览器
    js中的json对象和字符串之间的转化
    chosen.jquery.js
    select 后台获取text 并根据text 设置value选中项
    iframe中有ajax,设置iframe自适应高度
    charme浏览器 jquery1.9.1min.js 报脚本错误 无jquery.min.map 文件
  • 原文地址:https://www.cnblogs.com/fengzi7314/p/14109698.html
Copyright © 2011-2022 走看看