CentOS配置Docker
晋龍 2024-09-10 14:37:01 阅读 89
今天配置了一下虚拟机,给虚拟机装了一下 centos7.5
配置完之后了
本打算配置一个 docker 玩玩
下面是配置 docker 的步骤
配置 Docker
在 CentOS 虚拟机上安装 Docker 可以按照以下步骤进行:
1. 更新现有的软件包:
<code>sudo yum update -y
可是这步骤就出问题了,很着急很尴尬,报了一个 这么长的错误
sudo yum update -y
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
One of the configured repositories failed (未知),
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: extras/7/x86_64
所幸,我有几种方法来试着解决一下
这个错误消息表示 CentOS 无法解析镜像服务器的主机名,可能是由于 DNS 配置问题或者网络连接问题。可以尝试以下几种方法来解决这个问题:
方法一:检查网络连接
首先,确保虚拟机能够访问互联网。
方法二:检查和配置 DNS 服务器
打开 /etc/resolv.conf
文件:
sudo vi /etc/resolv.conf
添加或修改 DNS 服务器地址:
nameserver 8.8.8.8
nameserver 8.8.4.4
这将使用 Google 的公共 DNS 服务器。
方法三:使用替代镜像源
如果问题仍然存在,可以尝试使用其他镜像源。
备份当前的镜像源配置:
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
编辑 /etc/yum.repos.d/CentOS-Base.repo
文件并修改 baseurl
为其他可用的镜像,例如阿里云镜像:
sudo vi /etc/yum.repos.d/CentOS-Base.repo
将 mirrorlist
注释掉,添加或修改 baseurl
如下:
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
重新运行更新命令:
sudo yum update -y
我是在这里配置好的,具体还是有问题的话,走下面步骤尝试。
方法四:临时禁用问题仓库
如果只需暂时禁用有问题的仓库,也可以使用以下命令:
sudo yum --disablerepo=extras update -y
请尝试上述方法之一,看看是否能够解决问题。如果仍然有问题,请告知具体的错误消息,以便进一步排查。
如果这一步还是有问题的话,那么,请尝试重新安装 centos。按说明重新配置虚拟机网络。
2. 安装必要的软件包:
安装 yum-utils
、device-mapper-persistent-data
和 lvm2
,它们是 Docker 依赖的包。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3. 设置 Docker 的仓库:
使用 yum-config-manager
设置 Docker 的官方仓库。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
这里报了个 443 的 error
https://download.docker.com/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 14] curl
#7 - "Failed connect to download.docker.com:443; 操作现在正在进行"
error之后找资料这个错误提示 CentOS 无法连接到 Docker 官方仓库的网址。这通常是由于网络问题或 DNS 配置问题。可以尝试以下几个解决方法:
检查网络连接
确保虚拟机的网络连接正常,可以访问互联网。
修改 DNS 服务器
尝试更改 DNS 服务器,以便能够解析 download.docker.com
的地址。
编辑 /etc/resolv.conf
文件:
sudo vi /etc/resolv.conf
添加或修改 DNS 服务器地址:
nameserver 8.8.8.8
nameserver 8.8.4.4
手动下载 Docker 仓库文件
如果以上方法无效,可以尝试手动下载 docker-ce.repo
文件并将其放置到 /etc/yum.repos.d/
目录中。
使用 curl
或 wget
手动下载文件:
sudo curl -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
或者使用 wget
:
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
使用备用仓库
如果仍然无法连接到 Docker 官方仓库,可以使用第三方镜像仓库。
备份当前的 Docker 仓库配置:
sudo cp /etc/yum.repos.d/docker-ce.repo /etc/yum.repos.d/docker-ce.repo.backup
编辑 /etc/yum.repos.d/docker-ce.repo
文件,将 baseurl
修改为镜像地址,例如阿里云镜像:
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
更新 YUM 缓存并安装 Docker清除 YUM 缓存:
sudo yum clean all
更新 YUM 缓存:
sudo yum makecache fast
安装 Docker:
sudo yum install -y docker-ce docker-ce-cli containerd.io
请尝试上述方法之一,并检查是否能够成功安装 Docker。如果仍有问题,请提供进一步的错误信息。
4. 安装 Docker:
安装 Docker CE(Community Edition)。
sudo yum install -y docker-ce docker-ce-cli containerd.io
到这里配置出现问题,报了一个这个错
sudo yum install -y docker-ce docker-ce-cli containerd.io
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
没有可用软件包 docker-ce。
没有可用软件包 docker-ce-cli。
没有可用软件包 containerd.io。
错误:无须任何处理
所以我又绞尽脑汁,找解决方法,毕竟,成长的路上不仅仅在成功就是在失败后寻找成功。
这个错误消息表明即使添加了 Docker 的官方仓库,YUM 仍然无法找到 docker-ce
、docker-ce-cli
和 containerd.io
软件包。以下是一些可能的解决方法:
确认仓库是否正确添加
检查 /etc/yum.repos.d/
目录下是否存在 docker-ce.repo
文件,内容是否正确。
cat /etc/yum.repos.d/docker-ce.repo
正确的内容应类似于:
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
清除 YUM 缓存并更新缓存
清除所有 YUM 缓存:
sudo yum clean all
重新生成缓存:
sudo yum makecache fast
使用备用镜像源
如果 Docker 官方仓库仍然不可用,可以尝试使用第三方镜像源。例如,使用阿里云镜像源。
修改 /etc/yum.repos.d/docker-ce.repo
文件,将 baseurl
修改为阿里云镜像源:
sudo vi /etc/yum.repos.d/docker-ce.repo
将内容修改为:
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
手动下载并安装 Docker RPM 包
下载 Docker RPM 包:
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-20.10.7-3.el7.x86_64.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-20.10.7-3.el7.x86_64.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.6-3.1.el7.x86_64.rpm
安装下载的 RPM 包:
sudo rpm -ivh docker-ce-20.10.7-3.el7.x86_64.rpm docker-ce-cli-20.10.7-3.el7.x86_64.rpm containerd.io-1.4.6-3.1.el7.x86_64.rpm
确保网络连接和 DNS 配置正确
检查网络连接和 DNS 配置,确保系统能够访问外部网站。例如,尝试 ping 一下 Docker 的下载地址:
ping download.docker.com
如果 ping 不通,可以尝试更改 DNS 服务器。
请按照上述步骤尝试解决问题,如果问题依然存在,请提供更多详细信息。
5. 启动 Docker:
安装完成后,启动 Docker 服务并设置开机自启动。
sudo systemctl start docker
sudo systemctl enable docker
6. 验证安装:
运行以下命令验证 Docker 是否安装成功。
sudo docker run hello-world
如果一切顺利,应该会看到 Docker 下载镜像并运行一个打印“Hello from Docker!”的容器。
7. 常见问题
7.1. /etc/yum.repos.d/docker-ce.repo没有这个文件怎么办
如果 docker-ce.repo
文件没有成功创建,您可以手动创建该文件并添加必要的内容。以下是步骤:
7.1.1. 手动创建 docker-ce.repo
文件
创建并编辑 docker-ce.repo
文件:
sudo vi /etc/yum.repos.d/docker-ce.repo
添加以下内容到文件中:
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
保存并退出:
在 vi
编辑器中,按下 Esc
键,然后输入 :wq
并按下 Enter
保存并退出。
清除 YUM 缓存并更新缓存
清除所有 YUM 缓存:
sudo yum clean all
重新生成缓存:
sudo yum makecache fast
7.1.2. 安装 Docker
安装 Docker:
sudo yum install -y docker-ce docker-ce-cli containerd.io
启动并验证 Docker:
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world
7.1.3. 使用阿里云镜像源
如果以上方法仍然无法访问 Docker 官方仓库,可以尝试使用阿里云镜像源:
编辑 docker-ce.repo
文件:
sudo vi /etc/yum.repos.d/docker-ce.repo
将内容替换为阿里云镜像源:
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
保存并退出:
在 vi
编辑器中,按下 Esc
键,然后输入 :wq
并按下 Enter
保存并退出。
7.1.4. 重新执行安装步骤
清除 YUM 缓存:
sudo yum clean all
重新生成缓存:
sudo yum makecache fast
安装 Docker:
sudo yum install -y docker-ce docker-ce-cli containerd.io
如果按照这些步骤仍然无法成功安装 Docker,请提供更多详细的错误信息,以便进一步诊断。
7.2. https://download.docker.com/linux/centos/7/x86_64/stable/repodata/repomd.xml: [Errno 14] curl#7 - "Failed connect to download.docker.com:443; 操作现在正在进行"
这个错误表明你的 CentOS 系统无法连接到 Docker 官方仓库的 URL。以下是一些可能的解决方法:
7.2.1. 确认网络连接
确保你的虚拟机可以访问互联网:
ping google.com
ping download.docker.com
7.2.2. 修改 DNS 设置
有时 DNS 问题会导致无法解析域名,可以尝试更改 DNS 服务器:
编辑 /etc/resolv.conf
文件:
sudo vi /etc/resolv.conf
添加或修改 DNS 服务器地址:
nameserver 8.8.8.8
nameserver 8.8.4.4
7.2.3. 手动下载 Docker 仓库文件并使用阿里云镜像
如果网络连接没有问题,仍然无法访问 Docker 官方仓库,可以使用阿里云镜像源:
手动创建并编辑 docker-ce.repo
文件:
sudo vi /etc/yum.repos.d/docker-ce.repo
添加以下内容到文件中:
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
保存并退出文件编辑:
在 vi
编辑器中,按下 Esc
键,然后输入 :wq
并按下 Enter
保存并退出。
7.2.4. 清除 YUM 缓存并更新缓存
清除所有 YUM 缓存:
sudo yum clean all
重新生成缓存:
sudo yum makecache fast
7.2.5. 安装 Docker
安装 Docker:
sudo yum install -y docker-ce docker-ce-cli containerd.io
启动并验证 Docker:
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world
7.2.6. 手动下载并安装 Docker RPM 包
如果上述方法仍然无法解决问题,可以手动下载并安装 Docker RPM 包:
下载 Docker RPM 包:
wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-20.10.7-3.el7.x86_64.rpm
wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-20.10.7-3.el7.x86_64.rpm
wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.6-3.1.el7.x86_64.rpm
安装下载的 RPM 包:
sudo rpm -ivh docker-ce-20.10.7-3.el7.x86_64.rpm docker-ce-cli-20.10.7-3.el7.x86_64.rpm containerd.io-1.4.6-3.1.el7.x86_64.rpm
启动并验证 Docker:
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world
请根据你的情况尝试以上方法,如果问题依然存在,请提供更多详细的错误信息。
7.3. [root@localhost yum.repos.d]# sudo systemctl start docker [root@localhost yum.repos.d]# sudo systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. [root@localhost yum.repos.d]# sudo docker run hello-world Unable to find image 'hello-world:latest' locally
要配置阿里云的镜像加速器,你需要使用你的阿里云容器镜像服务的加速器地址作为 <your-accelerator-id>
的值。以下是具体步骤:
登录到阿里云容器镜像服务控制台:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台在控制台中找到你的加速器地址,通常格式为 https://<your-accelerator-id>.mirror.aliyuncs.com
。编辑 Docker 的守护进程配置文件 /etc/docker/daemon.json
:
sudo vi /etc/docker/daemon.json
将以下内容添加到文件中,并将 <your-accelerator-id>
替换为你的加速器地址:
{
"registry-mirrors": ["https://<your-accelerator-id>.mirror.aliyuncs.com"]
}
保存并退出编辑器。重新加载 Docker 的配置并重启 Docker 服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
配置完成后,Docker 将使用阿里云的镜像加速器来加速镜像的拉取和推送操作。
【总结】配置不好,一部分是一开是没有配置好 DNS 一部分是镜像需要换成国内的,国外的下载不了,这个国外的是真实的 slow
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。