CentOS 7.9下安装Docker

embedded/2025/1/21 14:06:28/

一、安装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/embedded/155781.html

相关文章

WPF 属性绑定详解

在 WPF 开发中&#xff0c;属性绑定是一项核心且强大的功能&#xff0c;它极大地简化了 UI 与数据之间的交互&#xff0c;提高了代码的可维护性和可扩展性。本文将深入探讨 WPF 属性绑定&#xff0c;帮助大家更好地理解和运用这一技术。 什么是属性绑定 属性绑定是指在 WPF 中…

基于 Electron 应用的安全测试基础 — 提取和分析 .asar 文件

视频教程在我主页简介或专栏里 目录&#xff1a; 提取和分析 .asar 文件 4.1. .asar 文件提取工具 4.1.1. 为什么选择 NPX&#xff1f; 4.2. 提取过程 4.3. 提取 .asar 文件的重要性 4.3.1 关键词 4.3.2 执行关键词搜索 4.3.2.1 使用命令行工具“grep”进行关键词搜索 4.3.2…

Ubuntu 22.04.5 修改IP

Ubuntu22.04.5使用的是netplan管理网络&#xff0c;因此需要在文件夹/etc/netplan下的01-network-manager-all.yaml中修改&#xff0c;需要权限&#xff0c;使用sudo vim或者其他编辑器&#xff0c;修改后的内容如下&#xff1a; # Let NetworkManager manage all devices on …

springboot基于安卓的智启教育服务平台app

基于Spring Boot的智启教育服务平台App是一个结合了Spring Boot后端框架与安卓前端技术的综合性教育服务平台。 一、技术背景与架构 1.开发语言&#xff1a;后端采用Java语言开发&#xff0c;充分利用Java的跨平台性、面向对象特性和强大的后端处理能力。前端则使用安卓开发技…

2.6 聚焦:Word Embedding

聚焦:Word Embedding Word Embedding(词嵌入) 是一种将词语转化为低维向量表示的技术,使得词语在数学空间中具有语义上的相似性。它是自然语言处理(NLP)中不可或缺的一部分,为文本数据提供了强大的表示能力。与传统的基于词频的词袋模型(Bag-of-Words)相比,Word Emb…

智能仓储管理:从自动化到智能化的演进与挑战

智能仓储管理:从自动化到智能化的演进与挑战 随着电子商务的迅猛发展,仓储管理已不再是一个单纯的物理存储问题,它已经变得更加复杂,涉及到物流、库存、订单处理等多个环节。而随着人工智能和物联网技术的不断进步,智能仓储管理正在从传统的自动化仓库向更加智能化的系统…

JavaWeb开发(十五)实战-生鲜后台管理系统(二)注册、登录、记住密码

1. 生鲜后台管理系统-注册功能 1.1. 注册功能 &#xff08;1&#xff09;创建注册RegisterServlet&#xff0c;接收form表单中的参数。   &#xff08;2&#xff09;service创建一个userService处理业务逻辑。   &#xff08;3&#xff09;RegisterServlet将参数传递给ser…

深入了解Text2SQL开源项目(Chat2DB、SQL Chat 、Wren AI 、Vanna)

深入了解Text2SQL开源项目&#xff08;Chat2DB、SQL Chat 、Wren AI 、Vanna&#xff09; 前言 1.Chat2DB2.SQL Chat3.Wren AI4.Vanna 前言 在数据驱动决策的时代&#xff0c;将自然语言查询转化为结构化查询语言&#xff08;SQL&#xff09;的能力变得日益重要。无论是小型…