一、安装Docker
1、卸载系统之前可能安装的 docker(非必须)
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2、安装Docker-CE 所需的环境:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
-
如果安装出现以下错误,可以参考下列步骤:
-
sudo yum update Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=vag error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error" One of the configured repositories failed (Unknown), and yum doesn't have enough cached data to continue. At this point the only safe thing yum can do is fail. There are a few ways to work "fix" this: 1. Contact the upstream for the repository and get them to fix the problem. 2. Reconfigure the baseurl/etc. for the repository, to point to a working upstream. This is most often useful if you are using a newer distribution release than is supported by the repository (and the packages for the previous distribution release still work). 3. Run the command with the repository temporarily disabled yum --disablerepo=<repoid> ... 4. Disable the repository permanently, so yum won't use it by default. Yum will then just ignore the repository until you permanently enable it again or use --enablerepo for temporary usage: yum-config-manager --disable <repoid> or subscription-manager repos --disable=<repoid> 5. Configure the failing repository to be skipped, if it is unavailable. Note that yum will try to contact the repo. when it runs most commands, so will have to try and fail each time (and thus. yum will be be much slower). If it is a very temporary problem though, this is often a nice compromise: yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true Cannot find a valid baseurl for repo: base/7/x86_64
-
2.1、备份当前的 YUM 仓库配置(可选,但推荐):
-
sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.backup
-
2.2、编辑或创建一个新的仓库配置文件:
vi
编辑/etc/yum.repos.d/CentOS-Base.repo
文件(如果文件不存在,则创建它)。
-
2.3、添加一个新的镜像源: 在文件中添加以下内容,这里使用阿里云的镜像源作为示例:
-
[base] name=CentOS-$releasever - Base baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
-
2.4、清理 YUM 缓存:
-
sudo yum clean all
-
2.5、生成新的缓存:
-
sudo yum makecache fast
3、添加Docker仓库
Docker的官方仓库可能速度较慢,推荐使用国内的镜像源,如阿里云。添加Docker仓库的命令如下:
-
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、更新yum缓存并安装Docker CE
-
sudo yum makecache fast sudo yum install -y docker-ce docker-ce-cli containerd.io
5、启动Docker服务并设置开机自启
-
sudo systemctl start docker sudo systemctl enable docker
6、验证Docker安装
-
sudo docker --version
二、解决拉取镜像超时
以MySQL镜像为例
# 拉取 docker pull mysql:8.0.30 # 超时 Error response from daemon: Get "https://registry-1.docker.io/v2/library/mysql/manifests/sha256:3c1aab708f6e57fc4dccafe36ba # 创建目录 sudo mkdir -p /etc/docker # 配置多个镜像地址解决 sudo tee /etc/docker/daemon.json <<-'EOF' > { > "registry-mirrors": [ > "https://do.nark.eu.org", > "https://dc.j8.work", > "https://docker.m.daocloud.io", > "https://dockerproxy.com", > "https://docker.mirrors.ustc.edu.cn", > "https://docker.nju.edu.cn" > ] > } > EOF { "registry-mirrors": [ "https://do.nark.eu.org", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ] } # 重启服务 sudo systemctl daemon-reload sudo systemctl restart docker
感谢及参考:
Centos7系统 Docker 安装和使用教程(超详细附带常用的容器部署代码)_centos7 docker-CSDN博客