linux CentOs 安装docker 推荐生产环境使用

news2024/11/18 10:44:05

目录

1. 在CentOs上安装docker所需的系统环境

2. 卸载旧版本

2.1 查看是否已安装docker

2.2 卸载已安装的docker

3. 安装方式

3.1 使用rpm存储库安装(推荐使用该方法)

3.2 从包中安装

4. 开始docker


1. 在CentOs上安装docker所需的系统环境

需要以下CentOS版本之一的维护版本:

  • CentOs 7 
  • CentOs 8(stream)
  • CentOs 9(stream)

2. 卸载旧版本

2.1 查看是否已安装docker

执行docker命令:

docker -v

如果安装了就会输出docker的版本信息,例如:

Docker version 20.10.21, build baeda1f

如果没有安装docker,则可能会出现:

-bash: docker: command not found

以上是没有找到docker命令,代表没有安装docker

2.2 卸载已安装的docker

先暂停docker服务

systemctl stop docker

卸载Docker软件包:

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

以上卸载时,如果提示:

Loaded plugins: fastestmirror
No Match for argument: docker
No Match for argument: docker-client
No Match for argument: docker-client-latest
No Match for argument: docker-common
No Match for argument: docker-latest
No Match for argument: docker-latest-logrotate
No Match for argument: docker-logrotate
No Match for argument: docker-engine
No Packages marked for removal

说明并没有找到这些包并删除,那么我们会发现,docker已经存在,没有卸载成功

这时候我们可以尝试使用以下命令查找已安装的docker相关包:

yum list installed | grep docker

这个命令将列出所有已安装的包,并通过 grep 过滤出包含 "docker" 的包。如果这个命令返回了结果,那么你可以使用返回的包名来卸载 Docker

而以上则是返回了相关的docker包,我们将这些包进行卸载:

sudo yum remove containerd.io.x86_64 docker-buildx-plugin.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64 docker-ce-rootless-extras.x86_64 docker-compose-plugin.x86_64

tip:以上命令,除了前面的"sudo yum remove"是固定的,后面的包则需要根据实际的情况拼接,以上只是博主的内容,切勿直接复制使用,可能会发生错误或卸载不完整!

在卸载过程中,会提示:

Is this ok [y/N]: 

我们输入"y"按下回车键 代表同意即可

卸载运行之后会出现:

Complete!

就代表卸载完成了

3. 安装方式

可以用不同的方式安装Docker:

  1. 设置Docker的存储库并从中进行安装,以便于安装和升级任务。这是推荐的方法
  2. 可以下载RPM包并手动安装,也可以完全手动管理升级。这在一些情况下很有用,比如在无法访问互联网的气隙系统上安装Docker

3.1 使用rpm存储库安装(推荐使用该方法)

在新主机上首次安装Docker之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker

设置存储库
安装yum-utils包(它提供yum-config-manager实用程序)并设置存储库

运行以下命令:

sudo yum install -y yum-utils

出现下面这样代表成功:

接着运行以下命令:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

出现以下代表成功:

这里我们安装的是docker的最新版本:

运行以下命令:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

当运行中提示:Is this ok [y/d/N]

我们输入:"y" 点击回车键同意即可继续安装

如果提示接受GPG密钥,验证指纹是否匹配060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配,则接受(还会出现一次 Is this ok [y/N] 我们继续输入"y" 按下回车键)。

这个命令安装Docker,但不启动Docker。它还创建了一个docker组,但是,默认情况下它不会向该组添加任何用户。

最后提示:Complete! 则代表安装结束

这时候我们再查看一次docker版本,则会显示docker的具体版本:

docker -v

显示:

Docker version 25.0.3, build 4debf41

3.2 从包中安装

如果你不能使用Docker的rpm库来安装Docker,你可以为你的版本下载rpm文件并手动安装

首先,我们先检查一下自己的CentOs版本是多少,输入以下命令:

lsb_release -a

我这边输出了:

LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.9.2009 (Core)
Release:	7.9.2009
Codename:	Core

转到 https://download.docker.com/linux/centos/ 并选择您的CentOS版本。然后浏览到x86_64/stable/Packages/,下载需要安装的Docker版本的.rpm文件。

我们访问以上链接,会发现,会让我们选择自己的版本,我这里是7.9,所以我选择7.9

该下载页,有很多的包,每个包的意思不同,先了解一下每个包是什么

包名解释
containerd.io这是 containerd 的 RPM 包。containerd 是一个容器运行时,它提供了底层的容器管理功能,如创建、启动、停止容器等。它是 Docker 和其他容器技术的底层组件
docker-buildx-plugin这是 Docker Buildx 的插件包。Docker Buildx 是一个扩展的构建工具,它支持使用 BuildKit 来构建多平台的 Docker 镜像
docker-ce这是 Docker 的社区版 RPM 包,提供了完整的容器化平台。它包括了 Docker 守护进程、Docker 命令行接口以及其他相关的工具和组件
docker-ce-cli这是 Docker 的命令行客户端的 RPM 包。它用于与 Docker 守护程序进行交互,执行如构建、运行、管理容器等操作
docker-ce-rootless-extras这是为 rootless 容器模式提供的额外工具和配置的 RPM 包。rootless 模式允许普通用户在没有 root 权限的情况下运行容器
docker-ce-selinux这是 Docker 的 SELinux 策略文件的 RPM 包。SELinux 是一个 Linux 内核的安全模块,用于提供强制访问控制。该包为 Docker 容器提供了 SELinux 策略,以增强系统的安全性
docker-compose-plugin这是 Docker Compose 的插件包。Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过该插件,用户可以使用 docker compose 命令来管理由 Compose 文件定义的应用程序
docker-scan-plugin这是 Docker Scan 的插件包。Docker Scan 是一个用于扫描 Docker 镜像中的安全漏洞的工具

我们能看到,这些包都有很多版本,老版本不建议使用,尽量使用稳定版本或最新版本。

这些包后面都有发布时间,所以我们可以根据包名的数字(例如:1.6.9是比1.6.8更高的),或者发布时间来根据最新版。

若不想使用最新版,防止不够稳定或还存在bug,我们可以往前推移一两个版本,这里我们示范,就使用最新的版本(建议按照实际情况下载)。

安装docker,运行以下命令:

sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.6.9-3.1.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-buildx-plugin-0.12.1-1.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-25.0.2-1.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-25.0.3-1.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-rootless-extras-25.0.3-1.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-compose-plugin-2.6.0-3.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-scan-plugin-0.9.0-3.el7.x86_64.rpm

运行之后,会进入下载,如果提示了:

Is this ok [y/d/N]

输入"y"按下回车键即可

 这时候我们再查看一次docker版本,则会显示docker的具体版本:

docker -v

显示:

Docker version 25.0.3, build 4debf41

4. 开始docker

输入一段简单的docker命令:

docker ps

以上命令是查看docker正在运行的容器

但是很不理想,会提示:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

意思为 docker守护进程并没有运行

简单的说,是docker服务没有启动,我们需要启动docker服务

可以先检查docker服务状态:

systemctl status docker

输出的内容中,会看到这么一段:

Active: inactive (dead)

该程序是不活跃的,代表是没有启动该服务

启动docker,运行以下命令:

systemctl start docker

然后我们再查看docker的状态会发现输出是这样的:

Active: active (running)

提示该程序是活跃的,代表服务启动了

然后我们再返回查看docker的容器:

docker ps

会输出:

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

列出了容器的相关信息,但并没有正在运行的容器,是因为我们还没有创建并运行容器,所以这里确实是没有数据的

现在我们就已经成功安装并启动了Docker。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1462325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于JAVA的人事管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 管理员功能模块2.2 普通员工功能模块2.3 答辩文案 三、系统展示四、核心代码4.1 查询职称4.2 新增留言回复4.3 工资申请4.4 工资审核4.5 员工请假 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的人…

STM32-开发板介绍

市面的开发板有很多,博主有幸了解到一款集成度较高的开发板,朗峰STM32F103RCT6,知名度不高,性价比很高,这是目前唯一一款集成了大量传感器和功能模块的高集成度开发板。 巨大的优势在于,传感器和功能模块的…

高效社区:数字孪生在智慧社区中的应用与实践

随着科技的快速发展,数字孪生技术在智慧社区建设中扮演着越来越重要的角色。数字孪生技术通过建立物理空间与数字空间的交互映射关系,实现对社区设施、环境、服务等智能化管理和服务,为未来社区的发展提供了新的动力。本文将探讨数字孪生在智…

【AI大语言模型】ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

深入理解指针(c语言)

目录 一、使用指针访问数组二、数组名的理解1、数组首元素的地址2、整个数组 三、一维数组传参的本质四、冒泡排序五、二级指针六、指针数组 一、使用指针访问数组 可以使用指针来访问数组元素。例如,可以声明一个指针变量并将其指向数组的第一个元素,然…

Leo赠书活动-17期 《基础软件之路:企业级实践及开源之路》

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 赠书活动专栏 ✨特色专栏:…

基于深度学习的连锁酒店场景识别与部署实践指南

基于深度学习的连锁酒店场景识别与部署实践指南 项目背景与意义数据集介绍数据预处理与加载模型选择与开发模型选择模型训练模型评估测试 模型部署服务 项目背景与意义 在智能旅游行业,场景识别(又称为场景分类)是一个关键技术,它…

Autosar-CanIf模块介绍

4.1CanIf模块简介 CanIf模块是为了要隔离MCal层与服务层,因此CanIf不可直接操作硬件资源。然而CanIf传输数据、接收数据要使用到Can模块的缓存,如果直接使用Can模块的缓存的话,那CanIf就与MCal层耦合在一起了。 为了解决这个问题,CanIf层使用了一个HOH的概念:Hardware Obj…

情暖冬日团建——手拉手助成长社会融合实践活动

2月21日上午合肥六中高一(14)班团支部的曹文祥、储诚羲、杜尤扬、林彦锋、古胜宇、周文涛、许君昊、郭稷豪、吴彤、徐欣悦 、 褚福磊、高彦希、李柄杉、周子翔、高杨、姚子涵和高一(3)班孙锦宸、高一(7)班朱…

Istio实战:Istio Kiali部署与验证

目录 前言一、Istio安装小插曲 注意事项 二、Kiali安装三、Istio测试参考资料 前言 前几天我就开始捣腾Istio。前几天在执行istioctl install --set profiledemo -y 的时候老是在第二步就报错了,开始我用的istio版本是1.6.8。 后面查看k8s与istio的版本对应关系后发…

FIPS 140-3认证有什么重要性

FIPS 140-3,全称为《Federal Information Processing Standards Publication 140-3》,是美国联邦政府制定的一套关于加密模块的标准。该标准旨在确保加密技术在政府、军事和商业等领域的安全性和合规性。自1994年首次发布以来,FIPS 140-3已成…

【学习总结】慢SQL治理经验总结

一、慢SQL定义 执行超过1s的SQL为慢SQL 三、慢SQl的风险 系统的响应时间延迟,影响用户体验 资源占用增加,增高了系统的负载,其他请求响应时间也可能会收到影响。 慢SQL占用数据库连接的时间长,如果有大量慢SQL查询同时执行,可能…

人工智能讲师AI讲师大模型讲师叶梓介绍及大语言模型技术原理与实践提纲

叶梓,上海交通大学计算机专业博士毕业,高级工程师。主研方向:数据挖掘、机器学习、人工智能。历任国内知名上市IT企业的AI技术总监、资深技术专家,市级行业大数据平台技术负责人。 长期负责城市信息化智能平台的建设工作&#xff…

[ai笔记11] 论ai韭菜的自我修养

欢迎来到文思源想的ai空间,这是技术老兵学习ai以及观点分享的第11篇内容! 上班之后时间确实少了许多,但是最近也没闲着,关于ai的学习一直在探索两个部分,一个是看那本有名的书《这就是ChatGPT》,另外一个则…

详细设计文档模版

背景 描述为什么要做这个技术改造,改造后收益是什么。可以是业务背景或者技术背景。 业务需求类此处可以将产品需求文档中的内容放到此处。技术改造类项目记录发起改造的原因,如系统问题、架构升级、bug修复、性能优化等。 现状 描述当前的技术实现的…

C#上位机与三菱PLC的通信09---开发自己的通讯库(A-3E版)

1、A-3E报文回顾 具体细节请看: C#上位机与三菱PLC的通信05--MC协议之QnA-3E报文解析 C#上位机与三菱PLC的通信06--MC协议之QnA-3E报文测试 2、为何要开发自己的通讯库 前面开发了自己的A-1E协议的通讯库,实现了数据的读写,对于封装的通…

合金电阻2512 0.01R是怎么应用在电池保护板中的

合金电阻2512 0.01R可以应用在电池保护板中的过流保护电路中。电池保护板用于监测和控制电池的充放电状态,以防止电池过充、过放和过流等情况,保护电池的安全和寿命。 过流保护电路是电池保护板的主要功能之一,用于检测电池输出电流是否超过安…

DT DAY3 信号和槽

作业: 1> 思维导图 2> 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 btn3 new QPushButton("按钮3",this);btn3->resize(ui->btn2->width(),ui->b…

Android14 InputManager-InputReader的处理

IMS启动时会调用InputReader.start()方法 InputReader.cpp status_t InputReader::start() {if (mThread) {return ALREADY_EXISTS;}mThread std::make_unique<InputThread>("InputReader", [this]() { loopOnce(); }, [this]() { mEventHub->wake(); });…

第3.4章:StarRocks数据导入-Routine Load

注&#xff1a;本篇文章阐述的是StarRocks-3.2版本的Routine Load导入机制 一、概述 Routine Load&#xff08;例行导入&#xff09;支持用户提交一个常驻的导入任务&#xff0c;可以将消息流存储在 Kafka 的Topic中&#xff0c;通过订阅Topic 中的全部或部分分区的消息&#…