2.Docker引擎

通过网盘分享的文件:MD文档笔记
链接: https://pan.baidu.com/s/1ao2wfyLEdN50YmIqdzfGYQ?pwd=5w5z 提取码: 5w5z
–来自百度网盘超级会员v6的分享

一.Docker 引擎简介

1.Docker 引擎发展历程

(1).首发版本架构

Docker 在首次发布时其引擎由两个核心组件构成

  1. LXC(Linux Container)
  2. Docker Daemon

不过该架构依赖于 LXC使得 Docker 存在严重的问题

  • 依赖于外部工具对于Docker来说存在着巨大的生存风险
  • LXC 使得 Docker 无法实现跨平台
  • Docker Daemon 的"大而全"也带来了严重的问题
  • 版本更新与功能扩展较难
  • 运行较慢带来性能问题
  • Docker Daemon 运行出现问题会直接影响容器的运行,不符合软件哲学

(2).Docker0.9 版本架构

从 Docker0.8 版本开始Docker使用自研的Libcontainer工具替换了 LXC

(3).Docker1.1 版本架构

2017 年 7 月 OCI 基金会发布了两个规范(镜像规范与容器运行时规范)的 OCI1.0 版本

2016 年底发布的 Docker1.1 版本基本遵循了OCI1.0 版本

从 Docker1.1 版本开始Docker Daemon 中不再包含任何容器运行时代码而是将容器运行时单独剥离了出来形成了 Runc 项目

2.Docker 引擎架构

Docker 引擎是用来运行和管理容器的核心软件

其现代架构由四部分主要组件构成

  • Docker Client
  • Dockerd
  • Containerd
  • Runc

在这里插入图片描述

(1).Docker Client

Docker 引擎提供的 CLI 工具,用于用户向 Docker 提交命令请求

(2).Dockerd

Dockerd(即 Docker Daemon)的主要功能有镜像构建、镜像管理、REST API、核心网络及编排等

其通过 gRPC 与 Containerd 进行通信

(3).Containerd

Containerd( Container Daemon)的主要功能是管理容器的生命周期,其本身并不会去创建容器,而是调用 Runc 来完成容器的创建

Docker 公司后来将 Containerd 项目捐献给了CNCF(云原生基金会)

(4).Runc

Runc(Run Container)

Runc 只有一个作用就是创建容器,其本质是一个独立的容器运行时 CLI 工具,其在 fork出一个容器子进程后会启动该容器进程,在容器进程启动完毕后Runc 会自动退出

(5).Shim

Shim使容器与 Docker Daemon 解耦,使得 Docker Daemon 的维护与升级不会影响到运行中的容器

每次创建容器时Containerd同时会fork出Runc进程与 Shim 进程

当Runc自动退出之前会先将新容器进程的父进程指定为相应的 Shim 进程

除了作为容器的父进程外Shim 进程还具有两个重要功能

  • 保持所有 STDIN 与 STDOUT 流的开启状态从而使得当 Docker Daemon 重启时容器不会因为 Pipe 的关闭而终止
  • 将容器的退出状态反馈给 Docker Daemon

3.Docker 引擎分类

在安装 Docker 之前需要先了解 Docker 官方对其版本的分类

Docker 的版本分为大版本与小版本

(1).大版本

Docker 从大版本来说分为三类

  • Moby
  • 社区版 Docker-CE(Community Edition)
  • 企业版 Docker-EE(Enterprise Edition)

(2).小版本

从 v1.13.1 之后Docker 的发布计划发生了变更

每个大版本下都出现了两个小版本 Edge 月版与 Stable 季版

不过现在的官网中一般只能看到 Stable 版本

二.Docker引擎安装

在CentOS上安装Docker需要CentOS 6.5 (64-bit) 或更高的版本

  • Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上

  • Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本

  • 该centos-extras库必须启用

    默认情况下启用此存储库,但如果您已禁用它,则需要 重新启用它

  • overlay2推荐使用存储驱动

Docker 可以安装在 Windows、 Linux、 Mac 等系统中

但生产环境下服务器使用 Linux中的CentOS居多,所以就以Docker在CentOSStream10与CentOS7中的安装为例来学习 Docker 的安装

官网"https://docs.docker.com/engine/install/centos/"中可以看到具体安装方式与安装步骤

1.CentOSStream10安装

1.1.安装准备

1.1.1.Docker 下载
  • Docker官网

    http://www.docker.com

    在这里插入图片描述

  • 中文官网

    https://docker.p2hp.com/

    在这里插入图片描述

1.1.2.查看内核版本

uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)

root账户登录查看内核版本如下

uname -a

在这里插入图片描述

或者

uname -r

在这里插入图片描述

1.1.3.更新YUM
(1).备份yum源

CentOS10操作系统yum源配置文件主要有两个

  • centos.repo

    centos.repo 配置文件是 CentOS 系统中用于配置 yum 软件仓库(repository)的文件

    这个文件定义了 yum 从哪些 URL 地址获取软件包

  • centos-addons.repo

    centos-addons.repo 配置文件是 CentOS 系统中用于配置额外软件仓库(repository)的 yum 配置文件

    这个文件允许用户添加除了基础仓库之外的额外软件包源,以便安装那些不在基础仓库中的软件包

备份指令

# 备份 centos.repo
sudo mv /etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos.repo.backup
# 备份 centos-addons.repo
sudo mv /etc/yum.repos.d/centos-addons.repo /etc/yum.repos.d/centos-addons.repo.backup
(2).下载源

新建/etc/yum.repos.d/centos.repo 文件和 /etc/yum.repos.d/centos-addons.repo文件

  • centos.repo 内容
[root@longdidi ~]# vi /etc/yum.repos.d/centos.repo

[baseos]
name=CentOS Stream $releasever - BaseOS
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/BaseOS/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[baseos-debug]
name=CentOS Stream $releasever - BaseOS - Debug
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/BaseOS/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[baseos-source]
name=CentOS Stream $releasever - BaseOS - Source
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/BaseOS/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[appstream]
name=CentOS Stream $releasever - AppStream
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/AppStream/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[appstream-debug]
name=CentOS Stream $releasever - AppStream - Debug
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/AppStream/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[appstream-source]
name=CentOS Stream $releasever - AppStream - Source
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/AppStream/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[crb]
name=CentOS Stream $releasever - CRB
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/CRB/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0

[crb-debug]
name=CentOS Stream $releasever - CRB - Debug
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/CRB/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[crb-source]
name=CentOS Stream $releasever - CRB - Source
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/CRB/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

  • centos-addons.repo的内容
[root@longdidi ~]# vi /etc/yum.repos.d/centos-addons.repo

[highavailability]
name=CentOS Stream $releasever - HighAvailability
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/HighAvailability/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0

[highavailability-debug]
name=CentOS Stream $releasever - HighAvailability - Debug
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/HighAvailability/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[highavailability-source]
name=CentOS Stream $releasever - HighAvailability - Source
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/HighAvailability/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[nfv]
name=CentOS Stream $releasever - NFV
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/NFV/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0

[nfv-debug]
name=CentOS Stream $releasever - NFV - Debug
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/NFV/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[nfv-source]
name=CentOS Stream $releasever - NFV - Source
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/NFV/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[rt]
name=CentOS Stream $releasever - RT
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/RT/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0

[rt-debug]
name=CentOS Stream $releasever - RT - Debug
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/RT/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[rt-source]
name=CentOS Stream $releasever - RT - Source
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/RT/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[resilientstorage]
name=CentOS Stream $releasever - ResilientStorage
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/ResilientStorage/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0

[resilientstorage-debug]
name=CentOS Stream $releasever - ResilientStorage - Debug
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/ResilientStorage/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[resilientstorage-source]
name=CentOS Stream $releasever - ResilientStorage - Source
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/ResilientStorage/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[extras-common]
name=CentOS Stream $releasever - Extras packages
baseurl=http://mirrors.aliyun.com/centos-stream/SIGs/$stream/extras/$basearch/extras-common/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras-SHA512
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[extras-common-source]
name=CentOS Stream $releasever - Extras packages - Source
baseurl=http://mirrors.aliyun.com/centos-stream/SIGs/$stream/extras/source/extras-common/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras-SHA512
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

(3).清理yum缓存

清理yum缓存并生成新的缓存, 一般情况下当你修改了 YUM 配置文件或者遇到与缓存相关的问题时可以使用这两个命令来清理旧的缓存并重新生成新的缓存

yum clean all

yum makecache
  • yum clean all

    这个命令用于清理 YUM 缓存

    执行该命令后YUM 会删除所有已下载的包和头文件缓存以及任何已启用的插件数据和旧的内核数据

    执行这个命令可以释放磁盘空间并删除旧的缓存数据

  • yum makecache

    这个命令用于重新生成 YUM 缓存

    执行该命令后,YUM 会下载软件包清单和元数据并将其缓存到本地

    这样做可以加快后续的软件包查询和安装速度

    执行 yum makecache 可以确保你使用的 YUM 源中的最新软件包信息被正确地缓存以便快速查找和安装软件包

(4).更新yum源检查是否生效
yum update

在这里插入图片描述

yum update命令用于升级系统中已安装的软件包到最新的可用版本

执行该命令时YUM会检查已安装的软件包并与可用的软件包版本进行对比然后自动进行升级操作

1.2.CentOS安装

CentOS下安装Docker文档

https://docs.docker.com/engine/install/centos/

1.2.1.卸载旧版本Docker

较旧的Docker版本称为docker或docker-engine

如果已安装这些程序需要先卸载它们以及相关的依赖项

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

在这里插入图片描述

1.2.2.yum安装gcc相关

执行下面两个命令

sudo yum -y install gcc

sudo yum -y install gcc-c++

在这里插入图片描述

1.2.3.安装需要的软件包

命令如下

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • yum-util:提供了yum-config-manager 工具

  • device-mapper-persistent-data:驱动依赖

  • lvm2:驱动依赖

在这里插入图片描述

1.2.4.设置稳定的Docker仓库
(1).配置中央仓库命令
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

在这里插入图片描述

(2).设置阿里云仓库
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述

注意:可以启用可选库nightly或者test库,这些存储库包含在docker.repo上面的文件中,但默认情况下是禁用的,可以在稳定存储库旁边启用它们(这里选择不开启,禁用就行了)

  • 启用nightly存储库
sudo yum-config-manager --enable docker-ce-nightly
  • 启用test存储库
sudo yum-config-manager --enable docker-ce-test
  • 禁用nightly存储库
sudo yum-config-manager --disable docker-ce-nightly
  • 禁用test存储库
sudo yum-config-manager --disable docker-ce-test
1.2.5.安装方法

可以根据需要以不同的方式安装Docker Engine

  • 设置Docker的存储库并从中进行安装,以简化安装和升级任务(这是推荐的方法)
  • 下载并手动安装 RPM软件包,并完全手动管理升级,这在诸如在无法访问互联网的空白系统上安装Docker的情况下非常有用
  • 使用自动便利脚本来安装Docker

在新主机上首次安装Docker Engine之前需要设置Docker存储库

之后可以从存储库安装和更新Docker

(1).最新版本安装

安装最新版本的Docker Engine和容器

命令如下

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

Docker 安装完默认未启动

在这里插入图片描述

(2).最新特定版

要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装

1) 列出并排序存储库中可用的版本

此示例按版本号(从高到低)对结果进行排序

sudo  yum list docker-ce --showduplicates | sort -r

在这里插入图片描述

2) 通过版本号安装

通过其完整的软件包名称安装特定版本

该软件包名称是"软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔"

sudo yum install docker-ce-版本号 docker-ce-cli-版本号 containerd.io docker-compose-plugin            

在这里插入图片描述

【示例】

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

在这里插入图片描述

注意:如果是比较旧的版本,可能需要在版本后面加上".ce"后缀

sudo yum install docker-ce-26.1.4.ce docker-ce-cli-26.1.4.ce containerd.i

2.CentOS7安装

2.1.安装准备

2.1.1.Docker 下载
  • Docker官网

    http://www.docker.com

    在这里插入图片描述

  • 中文官网

    https://docker.p2hp.com/

    在这里插入图片描述

2.1.2.查看内核版本

uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)

root账户登录查看内核版本如下

uname -a

在这里插入图片描述

或者

uname -r

在这里插入图片描述

2.1.3.更新YUM
(1).备份yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

使用 root 权限更新 yum 包(生产环境中此步操作需慎重,学习的话随便搞)

执行该命令后CentOS-Base.repo文件将被重命名为CentOS-Base.repo.backup并放置在相同的目录中

这样做可以为CentOS-Base.repo文件创建一个备份以免不小心修改或删除该文件时丢失重要的配置

(2).下载源

下载国内yum源配置文件到/etc/yum.repos.d/CentOS-Base.repo

阿里云 CentOS 7(推荐):
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo


网易163 CentOS 7 源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo


搜狐 CentOS 7 源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.sohu.com/help/CentOS7-Base-sohu.repo

 
华为云 CentOS 7 源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.myhuaweicloud.com/repo/CentOS-7.repo


华东理工大学 CentOS 7 源:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.ustc.edu.cn/centos/7/os/x86_64


清华大学 CentOS 7 源:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/


北京理工大学 CentOS 7 源:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.bfsu.edu.cn/centos/7/os/x86_64/

上海交通大学 CentOS 7 源:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://ftp.sjtu.edu.cn/centos/7/os/x86_64/

中国科学技术大学 CentOS 7 源:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.ustc.edu.cn/centos/7/os/x86_64/

兰州大学 CentOS 7 源:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirror.lzu.edu.cn/centos/7/os/x86_64/

以上命令选择一个就行了(本人选择的阿里云)

在这里插入图片描述

这个命令是使用wget工具从阿里云下载CentOS 7的国内yum源文件,并将其保存为/etc/yum.repos.d/CentOS-Base.repo

wget是一个命令行工具用于下载文件

在这个命令中:-O选项用于指定保存的文件名和路径,然后是要下载的文件的URL

(3).清理yum缓存

清理yum缓存并生成新的缓存,一般情况下当你修改了 YUM 配置文件或者遇到与缓存相关的问题时可以使用这两个命令来清理旧的缓存并重新生成新的缓存

yum clean all

yum makecache
  • yum clean all

    这个命令用于清理 YUM 缓存

    执行该命令后YUM 会删除所有已下载的包和头文件缓存以及任何已启用的插件数据和旧的内核数据

    执行这个命令可以释放磁盘空间并删除旧的缓存数据

  • yum makecache

    这个命令用于重新生成 YUM 缓存

    执行该命令后,YUM 会下载软件包清单和元数据并将其缓存到本地

    这样做可以加快后续的软件包查询和安装速度

    执行 yum makecache 可以确保你使用的 YUM 源中的最新软件包信息被正确地缓存以便快速查找和安装软件包

(4).更新yum源检查是否生效
yum -y update

yum update命令用于升级系统中已安装的软件包到最新的可用版本

执行该命令时YUM会检查已安装的软件包并与可用的软件包版本进行对比然后自动进行升级操作

2.1.4.卸载旧版本Docker

较旧的Docker版本称为docker或docker-engine

如果已安装这些程序需要先卸载它们以及相关的依赖项

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

执行结果

在这里插入图片描述

2.1.5.yum安装gcc相关

执行下面两个命令

sudo yum -y install gcc gcc-c++

在这里插入图片描述

2.1.6.安装需要的软件包

命令如下

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • yum-util:提供了yum-config-manager 工具
  • device-mapper-persistent-data:驱动依赖
  • lvm2:驱动依赖

在这里插入图片描述

2.1.7.设置稳定的Docker仓库
(1).配置中央仓库命令
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

可能会出现如下错误

在这里插入图片描述

这是由于国内访问不到docker官方镜像的缘故

(2).设置阿里云仓库
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述

注意:可以启用可选库nightly或者test库

这些存储库包含在docker.repo上面的文件中,但默认情况下是禁用的,可以在稳定存储库旁边启用它们

  • 启用nightly存储库
sudo yum-config-manager --enable docker-ce-nightly
  • 启用test存储库
sudo yum-config-manager --enable docker-ce-test
  • 禁用nightly存储库
sudo yum-config-manager --disable docker-ce-nightly
  • 禁用test存储库
sudo yum-config-manager --disable docker-ce-test

2.2.安装方法

可以根据需要以不同的方式安装Docker Engine

  • 设置Docker的存储库并从中进行安装,以简化安装和升级任务(这是推荐的方法)

  • 下载并手动安装 RPM软件包,并完全手动管理升级

    这在诸如在无法访问互联网的空白系统上安装Docker的情况下非常有用

  • 使用自动便利脚本来安装Docker

2.2.1.在线安装

在新主机上首次安装Docker Engine之前需要设置Docker存储库

之后可以从存储库安装和更新Docker

(1).最新版本安装

安装最新版本的Docker Engine和容器

命令如下

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

在这里插入图片描述

Docker 安装完默认未启动

(2).最新特定版

要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装

1) 列出并排序存储库中可用的版本

此示例按版本号(从高到低)对结果进行排序

sudo yum list docker-ce --showduplicates | sort -r

在这里插入图片描述

2) 通过版本号安装

通过其完整的软件包名称安装特定版本

该软件包名称是"软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔"

sudo yum install docker-ce-版本号 docker-ce-cli-版本号 containerd.io docker-compose-plugin

在这里插入图片描述

【示例】

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

在这里插入图片描述

2.2.2.离线安装

如果无法使用Docker的存储库安装Docker,则可以下载该.rpm发行版的文件并手动安装

每次要升级Docker Engine时,都需要下载一个新文件

(1).下载安装包

下载地址

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

在这里插入图片描述

下载要安装的Docker版本的.rpm文件

这里以"docker-ce-20.10.9-3.el7.x86_64.rpm"为例

需要下载以下五个安装包(不同版本的安装包不同)

  • docker-ce-20.10.9-3.el7.x86_64.rpm
  • containerd.io-1.4.9-3.1.el7.x86_64.rpm
  • docker-ce-cli-20.10.9-3.el7.x86_64.rpm
  • docker-scan-plugin-0.9.0-3.el7.x86_64.rpm
  • docker-ce-rootless-extras-20.10.9-3.el7.x86_64.rpm

下载要安装的Docker版本的.rpm文件

这里以"docker-ce-26.1.4 -1.el7.x86_64.rpm"为例

需要下载以下五个安装包(不同版本的安装包不同)

  • docker-ce-26.1.4-1.el7.x86_64.rpm
  • containerd.io-1.6.9-3.1.el7.x86_64.rpm
  • docker-ce-cli-26.1.4-1.el7.x86_64.rpm
  • docker-scan-plugin-0.23.0-3.el7.x86_64.rpm
  • docker-ce-rootless-extras-26.1.4-1.el7.x86_64.rpm
(2).创建安装目录

新建一个安装目录

mkdir /usr/local/install/docker
cd /usr/local/install/docker/
(3)上传安装包

将下载好的安装包上传到该目录下

在这里插入图片描述

(4).开始安装
sudo yum localinstall -y *.rpm

在这里插入图片描述

(5).版本升级

要升级Docker Engine需要下载更新的包文件并重复安装过程

使用如下命令升级

yum -y upgrade /文件路径/package.rpm

【示例】

升级"docker-ce-rootless-extras-20.10.9-3.el7.x86_64.rpm"到"docker-ce-rootless-extras-26.1.4-1.el7.x86_64.rpm"

上传安装包

在这里插入图片描述

执行升级命令

yum -y upgrade /usr/local/install/docker/docker-ce-rootless-extras-26.1.4-1.el7.x86_64.rpm

在这里插入图片描述

三.Docker引擎操作指令

Docker 是以服务的形式运行在系统中所以使用 systemctl 来对其进行各种操作

1.启动 Docker

启动Docerk并加入开机启动

sudo systemctl start docker

2.停止Docker

systemctl stop docker

3.重启Docker

systemctl restart docker

4.开启自启

sudo systemctl enable docker

5.关闭自启

sudo systemctl disable docker

6.查看Docker状态

systemctl status docker

在这里插入图片描述

7.查看docker信息

docker info

在这里插入图片描述

8.显示帮助文档

docker --help

在这里插入图片描述

9.查看单个命令的使用方法

可以通过命令"docker 命令 --help"更深入的了解指定的 Docker 命令使用方法

docker 命令 --help

例如要查看 docker stats 指令的具体使用方法:

docker stats --help

在这里插入图片描述

四.验证Docker

1.查看docker版本

docker version 命令可以看到当前 docker 的版本信息

主要包括 Docker 的Client 与Server的信息

docker version

在这里插入图片描述

2.运行镜像

可以通过运行 hello-world 镜像来验证 Docker 的安装启动成功

当然当前宿主机中是不存在 hello-world 镜像的

其会首先下载然后才会运行

docker run hello-world

如果看到如下输出则说明 Docker 已经安装启动成功了

在这里插入图片描述

如果看不到如下结果一般都是因为下载超时需要先完成以下"配置国内加速器"步骤

五.卸载Docker

对 Docker 的卸载分为三大步

  1. 移除YUM组件

通过yum remove 移除 docker 安装的四个组件

sudo yum  remove docker-ce docker-ce-cli containerd.io docker-compose-plugin  

在这里插入图片描述

  1. rm 两个目录

通过rm –rf 删除/var/lib 下的 docker 与containerd 两个目录

这两个目录中存放着镜像、容器、数据卷,它们在前面删除时不能被自动删除,需要手动删除

sudo rm -rf /var/lib/docker  sudo rm -rf  /var/lib/containerd  

在这里插入图片描述

  1. 删除其它配置文件

还有一些自己编辑、定义的配置文件,需要自己手工删除

六.配置加速器

国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器

Docker 官方和国内很多云服务商都提供了国内加速器服务

国内镜像中心常用的为阿里云与网易云

在本地 Docker 中指定要使用的国内加速器地址后就可以直接从国内镜像中心下载镜像了

1.Ubuntu14.04配置

对于使用 upstart 的系统而言,编辑"/etc/default/docker"文件,在其中的 DOCKER_OPTS 中配置加速器地址:

DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"

重新启动服务:

sudo service docker restart

2.Ubuntu16.04+/CentOS配置

(1).配置阿里云加速

进入网址:https://cr.console.aliyun.com/cn-hangzhou/mirrors

此处需要一个阿里云的账号,没有的话可以使用支付宝登录

在这里插入图片描述

登录进去后需要你找到容器镜像服务

在这里插入图片描述

选择立即开通

在这里插入图片描述

再选择个人版实例

在这里插入图片描述

打开菜单列表

在这里插入图片描述

再选择镜像加速器

在这里插入图片描述

选择镜像加速器

在这里插入图片描述

接下来按照里面的教程进行设置即可

  1. 创建文件
sudo  mkdir -p /etc/docker  

在这里插入图片描述

  1. 配置加速器

在文件末尾添加指定的内容

该 json 数据中的 URL 地址是与用户登录账号绑定的

不同的用户所生成的地址是不同的

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://yx4bftgd.mirror.aliyuncs.com"]
}
EOF

在这里插入图片描述

  1. 重启
sudo systemctl daemon-reload

sudo systemctl restart docker 

在这里插入图片描述

(2).配置网易云加速器

只需将前面的 daemon.json 文件中的那个URL 替换为如下加速器的URL即可

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
 "registry-mirrors": [
  "http://hub-mirror.c.163.com"
 ]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

(3).配置多加速器

有时候只配置阿里云或者网易云加速器不一定能下载到可以配置多个加速器

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
 "registry-mirrors" : [
 	"https://docker.registry.cyou",
 	"https://yx4bftgd.mirror.aliyuncs.com",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.aliyuncs.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://docker.rainbond.cc",
    "https://do.nark.eu.org",
    "https://dc.j8.work",
    "https://dockerproxy.com",
    "https://gst6rzl9.mirror.aliyuncs.com",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "http://mirrors.ustc.edu.cn/",
    "https://mirrors.tuna.tsinghua.edu.cn/",
    "http://mirrors.sohu.com/" 
	]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

3.检查加速器是否生效

检查加速器是否生效配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效

sudo docker info

在这里插入图片描述

如果从结果中看到了如下内容说明配置成功

七.修改镜像下载路径

当我们使用docker pull命令下载一个镜像时,Docker默认将镜像存储在本地的镜像仓库中

这个仓库位于Docker的数据目录下,具体路径取决于不同的操作系统

  • Windows:C:\ProgramData\Docker\windowsfilter目录
  • Linux:/var/lib/docker
  • Mac:/var/lib/docker

在默认情况下Docker会将下载的镜像以文件的形式存储在这些目录中

每个镜像在仓库中都有一个唯一的ID,该ID用于对应镜像在文件系统中的存储位置

如果希望将镜像存储在其他位置,可以通过修改Docker的配置文件来实现

具体方法是

  1. 停止Docker服务

  2. 编辑Docker的配置文件(/etc/docker/daemon.json)

    vi /etc/docker/daemon.json
    

    在文件中添加以下内容,将data-root字段设置为你想要的存储路径

    {
     "data-root": "/root/images/"
    }
    

    在这里插入图片描述

  3. 保存并关闭文件

  4. 创建下载路径

    mkdir -p /root/images/
    
  5. 启动Docker服务

    这样接下来下载的镜像将存储在新指定的路径中

  6. 测试下载镜像

    docker pull hello-world
    

    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值