解决Docker必须使用sudo操作的问题
操作步骤如下
1.创建docker组:sudo groupadd docker
2.将当前用户加入docker组:sudo gpasswd -a ${USER} docker
3.重启服务:sudo service docker restart
4.刷新docker成员:newgrp - docker
【注】:在ubuntu下亲测,其他linux没有测试。
补充:linux下docker安装,以及配置不使用sudo命令执行docker
安装
执行以下命令即可
wget -qO- https://get.docker.com/ | sh
不使用sudo命令执行docker
为什么需要创建docker用户组?
Docker守候进程绑定的是一个unix socket,而不是TCP端口。这个套接字默认的属主是root,其他是用户可以使用sudo命令来访问这个套接字文件。因为这个原因,docker服务进程都是以root帐号的身份运行的。
为了避免每次运行docker命令的时候都需要输入sudo,可以创建一个docker用户组,并把相应的用户添加到这个分组里面。当docker进程启动的时候,会设置该套接字可以被docker这个分组的用户读写。这样只要是在docker这个组里面的用户就可以直接执行docker命令了。
警告:该dockergroup等同于root帐号,具体的详情可以参考这篇文章: Docker Daemon AttackSurface .
1 使用有sudo权限的帐号登录系统。
2 创建docker分组,并将相应的用户添加到这个分组里面。
sudo usermod -aG docker your_username
3 退出,然后重新登录,以便让权限生效。
4 确认你可以直接运行docker命令。
$ docker run hello-world
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
不使用sudo 执行Docker命令的方法
Problem 默认安装完 docker 后,每次执行 docker 都需要运行 sudo 命令,非常浪费时间影响效率. 如果不跟 sudo,直接执行 docker images 命令会有如下问题: [liujun@li1581-58 ~]$ docker ps Cannot connect to the Docker daemon. Is the docker daemon running on this host? [liujun@li1581-58 ~]$ ps -ef | grep do
-
如何免sudo使用docker命令详解
背景 Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源.Docker提供了一种在安全.可重复的环境中自动部署软件的方式,它的出现拉开了基于云计算平台发布产品方式的变革序幕. 对Linux系统管理员或高级用户而言,sudo是必不可少的最重要的命令之一.而因为使用的是sudo安装docker,所以会导致一个问题.以普通用户登录的状况下,在使用 docker images 时必须添加
-
使用docker命令不需要敲sudo的操作
由于docker daemon需要绑定到主机的Unix socket而不是普通的TCP端口,而Unix socket的属主为root用户,所以其他用户只有在命令前添加sudo选项才能执行相关操作. 如果不想每次使用docker命令的时候还要额外的敲一下sudo,可以按照下面的方法配置一下. 1.创建一个docker组 $ sudo groupadd docker 2.添加当前用户到docker组 $ sudo usermod -aG docker $USER 3.登出,重新登录shell 4.验
-
解决Docker必须使用sudo操作的问题
操作步骤如下 1.创建docker组:sudo groupadd docker 2.将当前用户加入docker组:sudo gpasswd -a ${USER} docker 3.重启服务:sudo service docker restart 4.刷新docker成员:newgrp - docker [注]:在ubuntu下亲测,其他linux没有测试. 补充:linux下docker安装,以及配置不使用sudo命令执行docker 安装 执行以下命令即可 wget -qO- https://
-
解决docker pull被复位出现的问题
本文介绍了解决docker pull被复位出现的问题,分享给大家,具体如下: 例如: $ docker pull ubuntu:16.04 Trying to pull repository docker.io/library/ubuntu ... Get https://registry-1.docker.io/v2/library/ubuntu/manifests/sha256:dd7808d8792c9841d0b460122f1acf0a2dd1f56404f8d1e5629804888
-
解决mysql服务器在无操作超时主动断开连接的情况
我们在使用mysql服务的时候,正常情况下,mysql的设置的timeout是8个小时(28800秒),也就是说,如果一个连接8个小时都没有操作,那么mysql会主动的断开连接,当这个连接再次尝试查询的时候就会报个"MySQL server has gone away"的误,但是有时候,由于mysql服务器那边做了一些设置,很多情况下会缩短这个连接timeout时长以保证更多的连接可用.有时候设置得比较变态,很短,30秒,这样就需要客户端这边做一些操作来保证不要让mysql主动来断开.
-
如何解决docker容器启动失败
问题:电脑重启之后,docker里面的mysql容器重启不了,不知道是什么原因 上面的步骤:如果sudo docker start name 能重新启动,也就是输入:docker ps 能看到自己所需要的服务已经开启,那就不需要再进行下面的步骤了,如果刚好像上面那样,那就接着看下文: 解决办法:删除启动不了的容器,然后再重新运行镜像. 注意此时的容器名已经变为mysql了,为关闭状态,再运行镜像时还是运行不了,但此时再启动镜像时就可以启动了 内容补充 1.查看docker占用的挂载点 cat /
-
解决docker使用GDB,无法进入断点的问题
问题 docker里运行gdb,打了断点,却无法进入断点 原因 docker为了保证主机安全,docker开了很多安全设置,其中包括ASLR(Address space layout randomization),即docker里的内存地址和主机内存地址是不一样的. ASLR会导致GDB这种依赖地址的程序无法正常运作. 解决方法 使用docker的超级权限,加入--privileged(两个横线,markdown语法 如: docker run --privileged -- GDB即可正常运作
-
解决Docker启动Elasticsearch7.x报错的问题
使用Docker run 命令 docker run -d -p 9200:9200 -p 9300:9300 --name 用户自定义名字 容器ID 会看到一串字符串,一般情况下我们会误以为它启动成功 我们执行docker ps -a是发现它自动退出了 使用docker logs -f 容器ID 查看日志发现: ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count [65530] li
-
解决docker日志挂载的问题
关键是本地服务器没有写入的权限 关键看这里吧(Permission denied), 一直没有看正方,以为是配置日志文件 找不到有问题,下面是部分异常 10:35:09,498 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - openFile(null,true) call failed. java.io.FileNotFoundException: logs/bandwidth.log.2019-04-25.
-
Docker容器时区调整操作
如何检查Docker容器时区是否与宿主机一致? 1.进入宿主机, 执行以下命令: # 查看宿主机时间 [root@localhost ~]# date 2018年 06月 27日 星期三 22:42:44 CST 2.进入到容器中,执行以下命令 # 查看容器时间 root@lksjoid909090:/#date Wed Jul 27 14:43:31 UTC 2018 CST应该是指(China Shanghai Time,东八区时间) UTC应该是指(Coordinated Universa
-
在docker中开启sshd操作
首先在docker中安装openssh-server,安装完毕后切换到openssh-server的安装目录/etc/ssh下面. 运行ssh-keygen生成对应的密钥. 先看看sshd的配置文件sshd_config,里面有如下内容: HostKey /etc/ssh/ssh_host_rsa_key #HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host
-
解决docker pull镜像报错的问题
描述: 在win10下安装VM,在VM里运行docker,使用docker pull拉取镜像时报错 一. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 原因: 使用docker pull 命令拉取镜像时,如果不添加额外的信息如docker pull nginx
随机推荐
- Python探索之pLSA实现代码
- Lua函数用法研究
- python批量下载壁纸的实现代码
- Lua中获取table长度问题探讨
- Java操作MongoDB数据库示例分享
- asp.net 打印控件使用方法
- asp.net中倒计时自动跳转页面的实现方法(使用javascript)
- 解析关于wamp启动是80端口被占用的问题
- asp select下拉菜单选择图标并实时显示
- c语言内存泄露示例解析
- javascript实现的一个自定义长度的文本自动换行的函数。
- 微信支付开发教程(一)微信支付URL配置
- PHP关于IE下的iframe跨域导致session丢失问题解决方法
- JavaScript打印iframe内容示例代码
- 基于shell的if和else详解
- 使用Python编写Linux系统守护进程实例
- ORACLE 修改表结构 之ALTER CONSTAINTS的使用
- jQuery中$(function() {});问题详解
- 原生javascript获取元素样式属性值的方法
- jQuery控制网页打印指定区域的方法