docker 免root权限登陆的解决方案

初次使用docker命令的时候会报权限问题

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission denied

解决方法:

一,使用sudo获取root权限;

二,将当前用户添加到docker用户组;

sudo groupadd docker   #添加docker用户组
sudo gpasswd -a $USER docker   #将登陆用户加入到docker用户组中
newgrp docker   #更新用户组
docker ps  #测试docker命令是否可以使用sudo正常使用

补充:docker部署mysql 时root 用户无法登录问题和解决办法

今天在使用mysql:5.7的docker镜像时发现在启动容器后使用root用户无法登录。步骤如下:

1、拉取mysql5.7镜像

$docker pull mysql:5.7

2、创建一个网桥

$docker network create -d bridge blog_network

3、运行mysql 容器

 docker container run -it --rm --name mysql --network blog_network  -v $PWD/data/myscript/:/docker-entrypoint-initdb.d/ --env MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

4、进入容器

$docker exec -it mysql bash
#mysql -u root -p

使用步骤3 设置的密码123456 返回结果为:

Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

5、解决办法如下

第2步运行容器命令修改如下:

 $ docker container run -it --detach --name mysql --network blog_network -p 3306:3306 -v $PWD/data/myscript/:/docker-entrypoint-initdb.d/ --env MYSQL_RANDOM_ROOT_PASSWORD=yes mysql:5.7
$ docker container logs mysql| grep 'GENERATED ROOT PASSWORD: ' | awk -F': ' '{print $2}'

会返回一串字符串,这个就是我们的root用户的实际密码:使用这个密码登录后再修改root用户密码即可。

ooli0OhMoo1Ieg1CeiYieSohleeVi1oh
$mysql -u root -p

使用上面的密码进入mysql之后就是修改密码了。

mysql>update mysql.user set authentication_string=password('newpassword') where user='root' ;
mysql>flush privileges;
mysql>exit

如图:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • docker容器里面的root权限获取方法

    首先你的container得正在运行 可通过sudo docker container ls或者sudo docker ps查看容器的CONTAINER ID 最后执行命令(其中7509371edd48 为上面查到的CONTAINER ID) sudo docker exec -ti -u root 7509371edd48 bash 补充:解决非root用户没有权限运行docker命令的问题 问题描述: "Got permission denied while trying to connec

  • docker用root进入容器的操作

    首先运行docker容器 运行命令是root用户 sudo docker exec -it -u root ec33c19230ca /bin/bash 补充:Docker中进入容器命令行及后台运行 Docker中我们一般会有两种执行命令的方式,一种是直接进入容器的命令行,在终端执行并查看结果,一种是在后台执行,并不会在终端查看结果. 1.进入容器命令行 su root docker run -i -t ubuntu:16.04 /bin/bash #或者执行下面这句 docker run -i

  • Docker容器没有权限写入宿主机目录的解决方案

    在应用docker容器的时候,更多的时候我们会把宿主机的目录挂载到docker容器中. 在宿主机的文件夹权限隶属于root时,我们需要将文件夹的权限用户进行 chown 设置,才能保证目录的内容的正常写入, 下面是一个例子: 使用的是docker版本的jenkins,运行后,出现如下错误: [root@localhost CICD]# docker logs -f jenkins touch: cannot touch '/var/jenkins_home/copy_reference_file

  • docker cp 拷贝文件 和 进入容器的操作

    进入正在运行的容器 # 进入容器 新开一个终端 # docker exec -it 容器id /bin/bash docker exec -it eaac94ef6926 /bin/bash # 进入容器原来的终端 # docker attach 容器id docker attach eaac94ef6926 容器的文件拷贝 # 从容器内拷贝文件到linux主机上 # docker cp 容器id:容器内路径 目标主机路径 docker cp eaac94ef6926:/home/test.tx

  • 使用docker更改容器内root密码的操作

    1.在制作dockerfile的时候使用如下命令设置ssh密码 RUN echo "root:root" | chpasswd 2.现在需要在容器生成后更改容器内root密码 使用 docker exec -it centos7.5 root:newpassword | chpasswd 命令执行成功,但是密码更新失败. 正确的方式如下: PASS='newpassword ' && echo -e "KaTeX parse error: Expected '

  • docker获取Let's Encrypt永久免费SSL证书的方法

    一.起因 官方的cerbot太烦了,不建议使用还不如野蛮生长的acme.sh,而这里介绍docker运行cerbot获取Let's Encrypt永久免费SSL证书 二.选型 cerbot的证书不会自动刷新日期,但是acme.sh自带这功能,每天凌晨0:00自动检测过期域名并且自动续期 选择docker运行cerbot,是为了让服务器里尽量少配置和无意义的程序,方便管理.例如Let's Encrypt需要的Python2.7,git,pip我们都不需要装在宿主机内,容器就自己配置好了 原文 ht

  • docker 如何修改mysql的root密码

    第一步mysql容器 docker exec -it 容器ID /bin/bash 第二步连接mysql mysql -uroot -p 输入密码后,登录mysql终端 第三步修改密码 SET PASSWORD FOR 'root' = PASSWORD('设置的密码'); 第四步重启 重启mysql容器即可 docker restart 容器ID 补充:docker 启动mysql容器启动初始化默认密码问题 -e MYSQL_ROOT_PASSWORD docker run -p 3308:3

  • docker 如何添加证书

    1.升级处理:sudo apt-get update 缺包,包的版本旧等问题可以由此解决,如果不是的话那就是缺失认证,需要生成自己的认证证书. 2.生成自己的认证证书 先建一个文件夹 mkdir -p certs 之后创建证书,证书生成在刚才创建的文件夹中 openssl req -newkey rsa:4096 -nodes -sha256 -keyout /root/certs/domain.key -x509 -days 365 -out /root/certs/domain.crt 之后

  • docker 免root权限登陆的解决方案

    初次使用docker命令的时候会报权限问题 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission den

  • 运行docker需要的权限分析

    运行docker需要root权限. 解决非root用户没有权限运行docker命令的问题,方法如下: 方法1: 使用sudo获取管理员权限,运行docker命令,这个方法在通过脚本执行docker命令的时候会有很多局限性 方法2: docker守护进程启动的时候,会默认赋予名为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令 sudo

  • mysql免安装没有任何root权限

    1.下载 MySQL Community Server 5.5.41 Linux - Generic Compressed TAR Archive mysql下载链接 2.解压tar包.例如:解压到/home/work目录下,附:由于解压文件名过长,可通过重命名或者创建软链接.小弟重命名成mysql了 3.#cd mysql –进入mysql工作目录 4.#cp support-files/my-medium.cnf my.cnf –复制官方提供的配置文件 #vi my.cnf –修改并添加一些

  • 详解Docker Volume 之权限管理

    Volume数据卷是Docker的一个重要概念.数据卷是可供一个或多个容器使用的特殊目录,可以为容器应用存储提供有价值的特性: 持久化数据与容器的生命周期解耦:在容器删除之后数据卷中的内容可以保持.Docker 1.9之后引进的named volume(命名文件卷)可以更加方便地管理数据卷的生命周期:数据卷可以被独立地创建和删除. 数据卷可以用于实现容器之间的数据共享 可以支持不同类型的数据存储实现 Docker缺省提供了对宿主机本地文件卷的支持,可以将宿主机的目录挂载到容器之中.由于没有容器分

  • Android 操作系统获取Root权限 原理详细解析

    android root权限破解分析 许多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简单及安全的,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/目录下放置一个可执行文件"su",这是一个二进制文件,相当于电脑上的exe文件,仅仅在系统中置入这个"su"文件是不会给手机的软件或硬件造成任何故障. 下面的代码是android系统原版的

  • docker容器中crontab无法正常运行解决方案

    相信很多人看完docker容器, 需要加crontab, 加完却发现不能执行,心塞.....接着便开始各种折腾... 首先当然是看日志了, 发现/var/log 下面没有任何信息, 那是因为你没有打开rsyslog. # /etc/init.d/rsyslog start 继续看日志 # tail /var/log/crond Dec 29 16:39:01 web01-50794 crond[2839]: (root) FAILED to open PAM security session (

  • centos6.5配置ssh免秘钥登陆执行pssh命令的讲解

    1.检查并安装pssh,yum list pssh 2.因为没有配置免秘钥登陆,pssh命令执行失败. [root@bogon ]# pssh -H root@192.168.245.129 -i uptime [1] 11:00:36 [FAILURE] root@192.168.245.129 Exited with error code 255 Stderr: The authenticity of host '192.168.245.129 (192.168.245.129)' can'

  • Linux下普通用户用sudo su给自己加root权限的方法

    首先: sudo这个命令就是给后面的命令加上root权限(sudo=superuser do),su这个命令是switch user,切换用户,你sudo su这个命令的意思是用root的权限来切换到()用户.你根本没有指定用户,当然切换不过去 你要切换到root,那就是su root,然后输入root的密码,你要让自己成为有执行sudo权限的人,那就要修改sudoer-list,在命令行里敲 sudo visudo  打开如图所示: 然后在打开的文件里把你的用户名加上去(按照里面已有的用户的格

  • docker安装Tomcat 404问题的解决方案

    查找tomcat的containerID,进入tomacat目录: [root@promote ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b52c4a46a432 nginx "/docker-entrypoin..." 4 minutes ago Up 4 minutes 0.0.0.0:8081->80/tcp nginx-test 02ffbf387631 tomcat "

随机推荐