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-utilsdevice-mapper-persistent-datalvm2,它们是 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/ 目录中。

使用 curlwget 手动下载文件:

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-cedocker-ce-clicontainerd.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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。