远程给docker容器执行命令(Docker命令让普通用户能够执行的实现)
类别:服务器 浏览量:870
时间:2021-10-14 00:25:42 远程给docker容器执行命令
Docker命令让普通用户能够执行的实现安装完docker一般就会有docker用户组第二步、将当前用户添加到docker组
sudo gpasswd -a ${USER} docker
第三步、重启docker
sudo systemctl restart docker
第四步、授予读写权限
sudo chmod a+rw /var/run/docker.sock
补充:非root用户没有权限使用docker
运行docker run时提示no permissioncentos上安装docker的官方文档
在安装docker-ce的时候已经自动创建了docker用户组,但是需要手动添加用户到docker用户组
$ sudo usermod -aG docker $USER
或者$ sudo usermod -aG docker {指定用户名}
但我在添加用户到docker用户组后还是提示no permission
比如我要运行ubuntu 14.04的bash:
[hsowan@localhost shell-workspace]$ docker run -it --rm ubuntu:14.04 bash docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.
why? 原因在于虽然用户加入了docker用户组,但是当前没有切换到docker用户组,所以还是没有权限
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
$ newgrp docker
现在就可以在非root用户下执行docker相关的命令了
除了给用户添加用户组之外,还有什么办法可以让非root用户可以执行docker相关的命令呢?
ok,那我们来查看一下/var/run/docker.sock的权限
$ sudo ll /var/run/docker.sock
会得到下面的结果:
srw-rw----. 1 root docker 0 Sep 22 15:29 /var/run/docker.sock
所以现在直接修改/var/run/docker.sock的权限
$ sudo chmod 666 /var/run/docker.sock
现在就可以在非root用户下运行docker了
$ docker run -it --rm ubuntu:14.04 bash root@5c60abab6425:/# cat /etc/os-release NAME="Ubuntu" VERSION="14.04.5 LTS, Trusty Tahr" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 14.04.5 LTS" VERSION_ID="14.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" root@5c60abab6425:/# exit exit
以上为个人经验,希望能给大家一个参考,也希望大家多多支持开心学习网。如有错误或未考虑完全的地方,望不吝赐教。
您可能感兴趣
- docker 技术认证(docker获取Let's Encrypt永久免费SSL证书的方法)
- docker容器管理技巧(Docker容器编排实现过程解析)
- dockergitlab服务器搭建(基于Docker部署GitLab环境搭建的方法步骤)
- docker gitlab 配置(使用Docker构建一个Git镜像使用clone仓库)
- docker容器内部怎么查看id(docker容器中无法获取宿主机hostname的解决方案)
- docker安装mysql后无法连接(Docker 安装 MySQL 并实现远程连接教程)
- 怎么用docker中的mysql连接数据库(连接docker里面的mysql失败解决方法)
- linuxdocker命令使用教程(seata docker 高可用部署的详细介绍)
- docker容器启动后怎么进入(Docker 退出container后保持继续运行的操作)
- dockerrun执行脚本(docker run和start的区别说明)
- docker怎么解决隔离性问题(docker启动ES内存溢出的解决方案)
- docker配置说明(Docker安装Kong API Gateway并使用的详细教程)
- docker容器启动自动执行命令(docker run 运行容器自动结束的解决)
- linuxdocker启动报错提示参数无效(docker 报错 Exited 1 4 minutes ago的原因分析)
- docker root权限(docker 免root权限登陆的解决方案)
- docker装redis(通过Docker部署Redis 6.x集群的方法)
- 一天一冲也算表 麦步,一款待机 21 天的智能手表体验评测(一天一冲也算表)
- 魅族智能手表充电座曝光 Type-C 接口,线座分离设计(魅族智能手表充电座曝光)
- 华为 Watch GT2 Pro 智能手表曝光,新增支持无线充电(华为WatchGT2)
- vivo首款智能手表来了 也有血氧饱和度监测,一次充电18天续航(vivo首款智能手表来了)
- 你知道 七夕 的真正含义吗(你知道七夕的真正含义吗)
- 七夕的寓意(七夕的寓意)
热门推荐
- sql怎么写递归(sql server实现递归查询的方法示例)
- python表白代码演示(python3实现表白神器)
- 阿里云配置宝塔(在阿里云购买云服务器并安装宝塔面板的步骤)
- javascript中error错误类型
- wx小程序请求封装(小程序wx.getUserProfile接口的具体使用)
- dede织梦的后台如何调整和使用(dedecms织梦模板去掉文档内链自动连接关键词的下划线)
- 延迟加载js文件
- sql查看数据库所有表名(SQL提取数据库表名及字段名等信息代码示例)
- dedecms标签语法(DEDECMS文档关键词关联文章BUG的修正方法)
- dockerfile挂载目录(解决docker run中使用 ./ 相对路径挂载文件或目录失败的问题)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9