CentOS 7.9下安装Docker

news/2025/1/25 3:08:38/

一、安装docker前的准备工作

操作系统版本为centos 7.9,内核版本需要在3.10以上,需要保障能够连通互联网,为了避免安装过程中出现网络异常建议关闭linux的防火墙(生产环境下不要关闭防火墙,可根据实际情况设置防火墙出入站规则)。

#查看内核版本
sudo uname -r
#查看系统版本
sudo cat /etc/redhat-release
#关闭防火墙
sudo systemctl stop firewalld
#禁用防火墙开机自启
sudo systemctl disable firewalld
ping www.baidu.com

虚拟机要处于联网的状态

首先卸载旧版本的Docker

sudo yum -y remove docker docker-common container-selinux

可能还要卸载旧版本的docker-selinux包,这个包与官方的docker-engine包相冲突了

sudo yum -y remove docker-selinux

注意旧版本docker中的镜像等内容都存放在/var/lib/docker中,没有被删除,所以卸载只是卸载了旧版本的docker,本地的docker内容并没有被删除。

二、开始安装docker

1、更新系统

yum -y update

在执行到最后的时候报错了

这个报错解决如下:

这里的报错,我查了一下其他文献是仓库配置文件有问题,我做了一下操作。

[root@localhost yum.repos.d]# mv /etc/yum.repos.d /etc/yum.repos.d.backup
[root@localhost yum.repos.d]# mkdir /etc/yum.repos.d
[root@localhost yum.repos.d]# yum install -y wget
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
There are no enabled repos.Run "yum repolist all" to see the repos you have.To enable Red Hat Subscription Management repositories:subscription-manager repos --enable <repo>To enable custom repositories:yum-config-manager --enable <repo>
  1. mv /etc/yum.repos.d /etc/yum.repos.d.backup:这行命令将原有的 /etc/yum.repos.d 目录重命名为 /etc/yum.repos.d.backup。这意味着你备份了所有现有的 YUM 仓库配置文件。这样做通常是为了安全起见,以防在修改或替换现有仓库配置时出现问题。

  2. mkdir /etc/yum.repos.d:接下来,你创建了一个新的空目录 /etc/yum.repos.d。YUM 使用这个目录来查找 .repo 文件,这些文件定义了软件仓库的位置和其它属性。由于你是刚创建的空目录,此时没有任何有效的仓库配置,因此你暂时无法通过 YUM 安装任何软件包,除非你添加至少一个有效的 .repo 文件。

  3. yum install -y wget:这条命令尝试使用 YUM 来安装 wget 工具。但由于你刚刚清空了 /etc/yum.repos.d/ 目录,没有配置任何有效的仓库源,YUM 可能无法找到并安装 wget 或任何其他软件包,除非你已经在此之前配置好了至少一个有效的 YUM 仓库源。

接着执行以下命令

配置 CentOS 操作系统的 YUM 软件仓库源,具体来说是从阿里云的镜像站下载一个 CentOS 7 的基础仓库配置文件,并保存到 /etc/yum.repos.d/ 目录下,命名为 CentOS-Base.repo 

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  • wget:这是一个在命令行界面中用于从网络下载文件的工具。

  • -O /etc/yum.repos.d/CentOS-Base.repo:这是 wget 的一个选项,用来指定下载文件的输出路径和文件名。在这个例子中,下载的文件会被保存为 /etc/yum.repos.d/CentOS-Base.repo

  • http://mirrors.aliyun.com/repo/Centos-7.repo:这是要下载的 CentOS 7 基础仓库配置文件的URL地址。这个文件包含了指向阿里云提供的 CentOS 7 软件仓库的配置信息,包括仓库的位置、优先级等设置。

执行完这条命令后,你的 CentOS 系统就会使用阿里云提供的软件仓库作为默认的 yum 源。这样做通常可以加快软件包的下载速度,特别是当你所在的地区访问国际互联网的速度较慢时,使用国内的镜像源(如阿里云)能够显著提高软件包的下载效率和稳定性。

执行结果如下:

清理 YUM 缓存

yum clean all

然后充新从所有启用的仓库中下载最新的元数据(metadata)并将其存储在本地缓存中,来加快后续的软件包查询和安装速度。

yum makecache

 执行结果如下

然后重新执行

yum -y update

OK,报错解决了

2、安装工具包并设置仓库。

在安装Docker之前,我们需要安装一些必要的依赖包,以确保Docker正常运行。执行以下命令安装这些依赖:

[root@localhost yum.repos.d]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
软件包 yum-utils-1.1.31-54.el7_8.noarch 已安装并且是最新版本
软件包 device-mapper-persistent-data-0.8.5-3.el7_9.2.x86_64 已安装并且是最新版本
软件包 7:lvm2-2.02.187-6.el7_9.5.x86_64 已安装并且是最新版本
无须任何处理

 我这里在写文章之前已经安装过了,所以显示这样,你们正常执行就行

设置yum仓库

[root@localhost yum.repos.d]# sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror, langpacks
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

sudo:以超级用户权限运行命令,因为修改系统级的配置文件需要管理员权限。

  • yum-config-manager:YUM 配置管理工具,用来添加、删除或修改 YUM 仓库配置。
  • --add-repo:该选项告诉 yum-config-manager 添加一个新的仓库配置。
  • http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo:这是你要添加的仓库配置文件的 URL。在这个例子中,它是 Docker CE 在阿里云上的 CentOS 源。

3、开始安装

sudo yum install docker-ce docker-ce-cli containerd.io

安装完成

启动docker,和设置开机自动化启动

[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 version
Client: Docker Engine - CommunityVersion:           26.1.4API version:       1.45Go version:        go1.21.11Git commit:        5650f9bBuilt:             Wed Jun  5 11:32:04 2024OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          26.1.4API version:      1.45 (minimum version 1.24)Go version:       go1.21.11Git commit:       de5c9cfBuilt:            Wed Jun  5 11:31:02 2024OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.6.33GitCommit:        d2d58213f83a351ca8f528a95fbd145f5654e957runc:Version:          1.1.12GitCommit:        v1.1.12-0-g51d5e94docker-init:Version:          0.19.0GitCommit:        de40ad0

配置镜像文件,执行即可

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","https://mirrors.tuna.tsinghua.edu.cn/docker-ce","http://hub-mirror.c.163.com","https://ufaad1ze.mirror.aliyuncs.com","https://mirror.ccs.tencentyun.com","https://www.daocloud.io/mirror","https://docker.nju.edu.cn"]
}
EOF

 重新启动docker

[root@localhost yum.repos.d]# sudo systemctl daemon-reload
[root@localhost yum.repos.d]# sudo systemctl restart docker
[root@localhost yum.repos.d]# sudo systemctl status dockerdocker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since 五 2025-01-17 18:12:55 CST; 12s agoDocs: https://docs.docker.comMain PID: 67171 (dockerd)Tasks: 7Memory: 28.8MCGroup: /system.slice/docker.service└─67171 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock1月 17 18:12:55 192.168.239.128 systemd[1]: Starting Docker Application Container Engine...
1月 17 18:12:55 192.168.239.128 dockerd[67171]: time="2025-01-17T18:12:55.393245804+08:00" level=info msg="Starting up"
1月 17 18:12:55 192.168.239.128 dockerd[67171]: time="2025-01-17T18:12:55.411127925+08:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
1月 17 18:12:55 192.168.239.128 dockerd[67171]: time="2025-01-17T18:12:55.411214377+08:00" level=info msg="Loading containers: start."
1月 17 18:12:55 192.168.239.128 dockerd[67171]: time="2025-01-17T18:12:55.462374161+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17...IP address"
1月 17 18:12:55 192.168.239.128 dockerd[67171]: time="2025-01-17T18:12:55.481304501+08:00" level=info msg="Loading containers: done."
1月 17 18:12:55 192.168.239.128 dockerd[67171]: time="2025-01-17T18:12:55.489925863+08:00" level=info msg="Docker daemon" commit=de5c9cf containerd-snapshotter=false sto...sion=26.1.4
1月 17 18:12:55 192.168.239.128 dockerd[67171]: time="2025-01-17T18:12:55.489966283+08:00" level=info msg="Daemon has completed initialization"
1月 17 18:12:55 192.168.239.128 dockerd[67171]: time="2025-01-17T18:12:55.500859234+08:00" level=info msg="API listen on /run/docker.sock"
1月 17 18:12:55 192.168.239.128 systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.


http://www.ppmy.cn/news/1565940.html

相关文章

【Docker】 privileged: true:允许容器获得比默认更高的权限

文章目录 一. 启用 privileged 模式二. privileged: true 的作用三. 安全隐患与处理 privileged: true 是 Docker 中一个特殊的配置&#xff0c;允许容器获得比默认更高的权限。虽然它可以解决一些特定问题&#xff0c;但也带来了安全风险。 一. 启用 privileged 模式 Docker…

关于单通道串口服务器的详细讲解

一、产品介绍 1.1 功能简介 SG-TCP232-110 是一款用来进行串口数据和网口数据转换的设备。解决普通串口设备在 Internet 上的联网问题。 设备的串口部分提供一个 232 接口和一个 485 接口&#xff0c;两个接口内部连接&#xff0c;同时只能使用一个口工作。 设备的网口…

(二)PosrgreSQL: Python3 连接Pgvector出错排查

在使用 Python 连接到 PostgreSQL 数据库&#xff0c;特别是当涉及到 pgvector 扩展以处理向量数据时&#xff0c;可能会遇到一些问题。本文针对psycopg2连接pgvector进行插入和查询操作失败问题&#xff0c;分享了一种可行的解决方案。 1. 安装并启用pgvector扩展 确保Postg…

算法刷题笔记——图论篇

这里写目录标题 理论基础图的基本概念图的种类度 连通性连通图强连通图连通分量强连通分量 图的构造邻接矩阵邻接表 图的遍历方式 深度优先搜索理论基础dfs 与 bfs 区别dfs 搜索过程深搜三部曲所有可达路径广度优先搜索理论基础广搜的使用场景广搜的过程 岛屿数量孤岛的总面积沉…

selenium clear()方法清除文本框内容

在使用Selenium进行Web自动化测试时&#xff0c;清除文本框内容是一个常见的需求。这可以通过多种方式实现&#xff0c;取决于你使用的是哪种编程语言&#xff08;如Python、Java等&#xff09;以及你的具体需求。以下是一些常见的方法&#xff1a; 1. 使用clear()方法 clear…

智源研究院与乐聚机器人成立具身智能联合实验室

2025年1月13日&#xff0c;北京智源人工智能研究院&#xff08;简称“智源研究院”&#xff09;和乐聚&#xff08;深圳&#xff09;机器人技术有限公司&#xff08;简称“乐聚机器人”&#xff09;正式达成合作&#xff0c;双方将成立具身智能联合实验室&#xff0c;集中优势资…

U-Net - U型网络:用于图像分割的卷积神经网络

U-Net是一种专为图像分割任务设计的卷积神经网络&#xff08;CNN&#xff09;&#xff0c;最初由Olaf Ronneberger等人于2015年提出。它被广泛应用于医学影像分析、遥感图像分割、自动驾驶和其他许多需要对图像进行像素级分类的任务中。U-Net具有强大的特征提取和恢复能力&…

56.命令绑定 C#例子 WPF例子

一共是两个控件&#xff0c;绑定了属性和命令。用的是最简做法 创建依赖&#xff1a; public class RelayCommand : ICommand{private readonly Action<object> _execute;public event EventHandler CanExecuteChanged;public RelayCommand(Action<object> execut…