初学docker时,有好多报错且自己不易解决的问题,在这里博主整理了几个困扰许久的问题解决办法,希望能够帮到大家!
1.yum安装docker时报错:
Cannot retrieve metalink for repository: epel. Please verify its path and try again
解决办法:
第一步:修改文件 /etc/yum.repos.d/epel.repo(文件第3行注释去掉,然后注释四行)
[root@localhost /]# vim /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
第二步:然后清理资源重新安装
[root@localhost /]# yum clear all
[root@localhost /]# yum install -y docker-io
[root@localhost /]# yum install -y docker
2.报错:
centos7 不在 sudoers 文件中,此事将被报告。
解决办法:
第一步:进入root用户
[centos7@localhost /]$ su
密码:
[root@localhost /]#
第二步:修改文件权限(添加写权限,这里告诉大家一个小技巧,Linux终端下的粘贴复制的快捷键时Ctrl+shift+c/v,已知请忽略):
[root@localhost /]# chmod u+w /etc/sudoers
[root@localhost /]# ll /etc/sudoers
-rwxr-----. 1 root root 4097 11月 12 00:51 /etc/sudoers
第三步:编辑文件/etc/sudoers(j进入vi编辑后,寻找行数的快捷方式,直接冒号后跟行数就可以,如“:100”):
[root@localhost /]# vim /etc/sudoers
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
centos7 ALL=(ALL) ALL #新添加内容
解释一下这里的ALL的意思:
第一个ALL表示网络中的主机名,一般指的是IP
第二个ALL表示执行命令的目标用户,即以什么身份执行命令
第三个ALL表示可以执行的命令
sudoers文件配置语法:
- Host_Alias:就是主机的列表 ,ALL表示全部
Host_Alias HOST_FLAG = 192.168.0.1, 192.168.0.2, 192.168.0.3 - Cmnd_Alias:就是允许执行的命令的列表 ,ALL表示全部
Cmnd_Alias COMMAND_FLAG =/sbin/service, /bin/rm, /bin/ls - User_Alias:就是具有sudo权限的用户的列表 ,ALL表示全部
User_Alias USER_FLAG = moc1,moc2,moc3 - Runas_Alias:就是用户以什么身份执行的列表 ,ALL表示全部
Runas_Alias RUNAS_FLAG = root,mysql,php
5)配置权限的格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
如果不需要密码验证的话,则按照这样的格式来配置
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG
第四步:去掉写权限
[root@localhost /]# ll /etc/sudoers
-r-xr-----. 1 root root 4097 11月 12 00:51 /etc/sudoers
3.运行docker version时,报错:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
解决办法:
rm -rf /etc/docker/daemon.json