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

目录

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。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

压缩感知的图像仿真(MATLAB源代码)

压缩感知是一种用于高效获取和表示信号的技术,它可以显著减少数据的采样和传输量,同时保持对信号的高质量恢复能力。在压缩感知中,信号被表示为其在一个稀疏基中的稀疏线性组合。通过仅使用少量的随机投影测量,就能够捕捉信号的大…

Vue状态管理库-Pinia

一、Pinia是什么? Pinia 是 Vue 的专属状态管理库,它允许支持跨组件或页面共享状态,即共享数据,他的初始设计目的是设计一个支持组合式API的 Vue 状态管理库(因为vue3一个很大的改变就是组合式API),当然这…

【数学建模入门】

数学建模入门 数学建模需要的学科知识怎么学习数学模型如何读好一篇优秀论文数学建模赛题常见类别数学建模常见问题数学建模组队和分工数学建模准备工作 数学建模需要的学科知识 怎么学习数学模型 💦推荐阅读书籍: 《数学建模算法与应用》,…

tensorboard的用法

部分测试代码: from torch.utils.tensorboard import SummaryWriter import numpy as np from PIL import Image import torch import cv2 as cv import matplotlib.pyplot as plt from torch import nn from torchvision import datasetsdef functiontools():writ…

ros自定义action记录

文章目录 自定义action1. 定义action文件2. 修改 package.xml3. 修改 CMakeLists.txt4. 运行 catkin build4. simple_action_server.py5. simple_action_client.py 测试 自定义action ros 版本:kinetic 自定义test包的文件结构如下 |-- test | |-- CMakeLists.t…

Django使用Celery异步

安装包 pip install celerypip install eventlet 1.在项目文件的根目录下创建目录结果 2. 在main.py文件中 # !/usr/bin/env python # -*-coding:utf-8 -*-""" # Author :skyTree # version :python 3.11 # Description&#…

el-table同时固定左列和右列时,出现错误情况

最近遇到一个问题,就是需求是要求表格同时固定序号列和操作列,我们用的是饿了么组件库的el-table,如下图,出现了错误情况: 解决方法就是使用doLayout方法: 如果使用了keep-alive,可以在activated里执行doLayout方法: activated() {this.$nextTick(() => {this.$ref…

Qt应用-天气预报实例

本文讲解Qt实现天气预报实例。 实现的功能 网络实时获取和显示6天的天气参数并绘制温度趋势曲线; 测试当前网络连接情况; 获得当前的IP地址的行政位置信息; 设计界面如下: 创建保存天气数据的类 #ifndef WEATHERDATA_H #define WEATHERDATA_H #include <QString>…

【设计模式】01-装饰器模式Decorator

作用&#xff1a;在不修改对象外观和功能的情况下添加或者删除对象功能&#xff0c;即给一个对象动态附加职能 装饰器模式主要包含以下角色。 抽象构件&#xff08;Component&#xff09;角色&#xff1a;定义一个抽象接口以规范准备接收附加责任的对象。具体构件&#xff08…

Nginx 和 Apache 的比较

Nginx和Apache的对比 Nginx和Apache的优缺点比较 (1)nginx相对于apache的优点 ①轻量级&#xff0c;同样起web服务&#xff0c;比apache占用更少的内存及资源 ②抗并发&#xff0c;nginx处理请求是异步非阻塞的&#xff0c;而apache是阻塞型的在高并发下&#xff0c;nginx能保持…

FPGA OSERDESE2

Output Parallel-to-Serial Logic Resources (OSERDESE2) OSERDESE2 在Xilinx 7 系列器件是一款专用的并行至串行转换器,具有特定的时钟和逻辑资源,旨在促进高速源同步接口的实现。每个OSERDESE2模块都包括一个专用的数据串行器和 3 状态控制。数据和 3 态串行器都可以在 SD…

AOSP10 替换系统launcher

本文实现将原生的launcher 移除&#xff0c;替换成我们自己写的launcher。 分以下几个步骤&#xff1a; 一、新建一个自己的launcher项目。 1.直接使用android studio 新建一个项目。 2.修改AndroidManifest.xml <applicationandroid:persistent"true"androi…

32FLASH闪存

目录 一&#xff0e;FLASH简介 二&#xff0e;代码实现 &#xff08;1&#xff09;读写内部FLASH &#xff08;2&#xff09;读取芯片ID 一&#xff0e;FLASH简介 存储器地址要记得累 系统存储器是原厂写入的Bootloader程序&#xff08;用于串口下载&#xff09;&#xff0…

css4浮动+清除浮动

浮动 一.常见网页布局1.三种布局方式2.布局准则 二.浮动&#xff08;float&#xff09;1.好处2.概念3.三大特性4.使用5.常见网页布局模板6.注意点 三.清除浮动1.why2.本质3.语法4.四种way&#xff08;后三个都是给父级添加&#xff09;清除浮动总结 一.常见网页布局 1.三种布局…

[java基础揉碎]this

引出this: 什么是this: java虚拟机会给每个对象分配 this&#xff0c;代表当前对象。 这里的this就是new出来的这个对象 this的本质: this是个引用在堆中指向它自己: this的细节: 访问成员方法: 访问构造器:

DPDK应该如何入门学习?

01 写在前面 我的读者当中应该有一部分人是做 DPDK 相关的&#xff0c;我自己虽然现在已经不做 DPDK 了&#xff0c;但对这块仍然有兴趣&#xff0c;今天这篇文章就来总结下 DPDK 的技术栈。注意&#xff1a;这篇文章是小白文&#xff0c;不适合大神哦。 文章从 DPDK 的产生背…

实战打靶集锦-025-HackInOS

文章目录 1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查5. 提权5.1 枚举系统信息5.2 探索一下passwd5.3 枚举可执行文件5.4 查看capabilities位5.5 目录探索5.6 枚举定时任务5.7 Linpeas提权 靶机地址&#xff1a;https://download.vulnhub.com/hackinos/HackInOS.ova 1. 主机…

【PyTorch][chapter 17][李宏毅深度学习]【无监督学习][ Auto-encoder]

前言&#xff1a; 本篇重点介绍AE&#xff08;Auto-Encoder&#xff09; 自编码器。这是深度学习的一个核心模型. 自编码网络是一种基于无监督学习方法的生成类模型,自编码最大特征输出等于输入 Yann LeCun&Bengio, Hinton 对无监督学习的看法. 目录&#xff1a; AE 模型原…

华为笔记本原厂系统镜像恢复安装教程方法

1.安装方法有两种&#xff0c;一种是用PE安装&#xff0c;一种是华为工厂包安装&#xff08;安装完成自带F10智能还原&#xff09; 若没有原装系统文件&#xff0c;请在这里远程恢复安装&#xff1a;https://pan.baidu.com/s/166gtt2okmMmuPUL1Fo3Gpg?pwdm64f 提取码:m64f …

跳表是一种什么样的数据结构

跳表是有序集合的底层数据结构&#xff0c;它其实是链表的一种进化体。正常链表是一个接着一个用指针连起来的&#xff0c;但这样查找效率低只有O(n)&#xff0c;为了解决这个问题&#xff0c;提出了跳表&#xff0c;实际上就是增加了高级索引。朴素的跳表指针是单向的并且元素…