4-控制docker exec访问权限

创建于20170306

本章小目标

  • docker exec 权限控制

参考链接

http://jonaskunze.com/restrict-user-to-its-own-container-using-docker/

1,前言

docker容器权限,默认都是用root来启动的。如果一台机器上启动了不同用户的容器。而任何一个在docker组中的登录用户,又都可以进入到当前机器的任何运行中的容器。显然,不符合权限隔离的需求。
例如,docker ps 看到有A,B两个容器,A是aa用户的,B是bb用户的,但是aa却可以通过docker exec进入B容器。

2,解决方案

通过设置用户的默认登录shell来进行控制

groupadd jl
useradd -d /home/jl -g jl -G docker -m jl 
# id jl   #jl用户已经在docker组中,权限非常大
uid=1000(jl) gid=1000(jl) groups=1000(jl),999(docker)

下面修改jl用户的登录shell,使其只可以进入dao_jl_stock_1容器

touch /usr/local/bin/docker_shell_jl
chmod +x /usr/local/bin/docker_shell_jl
#编写登录脚本的内容
cat /usr/local/bin/docker_shell_jl 
######
echo "hi jianglong1, welcom to container named dao_jl_stock_1!!!"
######
docker exec -ti dao_jl_stock_1 /bin/bash
sh   -c   "echo '/usr/local/bin/docker_shell_jl' >> /etc/shells"
cat /etc/shells 

#修改登录默认shell
chsh -s /usr/local/bin/docker_shell_jl jl

#检查修改结果
cat /etc/passwd
jl:x:1000:1000::/home/jl:/usr/local/bin/docker_shell_jl

好了,在OS中登录jl用户,已经进入到容器中,jl将只对自己的容器拥有root权限。

# su - jl
hi jianglong1, welcom to container named dao_jl_stock_1!!!

推荐阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 9,765评论 0 121
  • 0. 前言 docker是什么?docker是用GO语言开发的应用容器引擎,基于容器化,沙箱机制的应用部署技术。可...
    sessionboy阅读 3,431评论 2 49
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 3,925评论 0 27
  • 0x01 核心概念 Docker镜像类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统...
    闲云逸心阅读 3,870评论 0 9
  • 前天晚上,问一个舍友为什么分手,我很疑惑,因为他们的关系真的挺好的,相亲相爱的谈了两年了,彼此都特别粘对方。他对象...
    你是我的boy阅读 157评论 2 0
  • 01 我们刚知道肚子里有宝宝的时候,是在2014年2月末,试孕纸已有显示,但还是抑制不住激动的心情,次日便从公司请...
    笔尖儿爱写作阅读 74评论 2 3
  • You Don't Know JS: this & Object Prototypes Chapter 4: Mi...
    大橙子CZ阅读 140评论 0 1