🌊 前言

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。

在阅读本教程前,你需要掌握 Linux 的常用命令。

🚢 Docker 架构

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

🍀 CentOS Docker 安装

Docker 支持以下的 64 位 CentOS 版本:

要在 CentOS 上开始使用 Docker Engine,请确保 满足先决条件,然后 安装 Docker

先决条件

操作系统需求

要安装 Docker 引擎,您需要 CentOS 7 或 8 的维护版本。不支持或测试存档版本。

必须启用centos-extras存储库。该存储库在默认情况下是启用的,但是如果您已经禁用了它,则需要重新启用它。

建议使用overlay2存储驱动。

卸载旧版本

Docker的旧版本被称为DockerDocker -engine。 如果安装了这些组件,请卸载它们以及相关的依赖项。

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

如果yum报告没有安装这些包,那也没关系。

保留/var/lib/docker/文件中的映像、容器、卷、网络等内容。

Docker Engine包现在称为Docker -ce

安装方式 | 安装方法

你可以根据你的需要,以不同的方式安装Docker引擎:

  • 大多数用户设置Docker的存储库并从它们进行安装,以方便安装和升级任务。这是推荐的方法。
  • 有些用户下载RPM包并手动安装,完全手动管理升级。这在一些情况下很有用,例如:在无法访问互联网的气隙(空气间隙)系统上安装Docker。
  • 测试开发环境中,一些用户选择使用方便的自动脚本来安装Docker。
使用存储库进行安装

在新主机上首次安装Docker Engine之前,需要先设置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

国内的一些源地址:

阿里云:
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清华大学源:
sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

可选:启用夜间存储库或测试存储库。

这些存储库包含在docker中。 上面的Docker.repo文件,但在默认情况下禁用。 您可以将它们与稳定存储库一起启用。 下面的命令启用夜间存储库

sudo yum-config-manager --enable docker-ce-nightly

使用实例启用测试通道:

sudo yum-config-manager --enable docker-ce-test

您可以通过运行带有——disable标志的yum-config-manager命令禁用夜间存储库或测试存储库。 要重新启用它,请使用——enable标志。 下面的命令禁用夜间存储库。

sudo yum-config-manager --disable docker-ce-nightly
安装Docker引擎

1.安装Docker Engine和containerd的最新版本,或者进入下一步安装特定版本:

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

如果提示接受GPG密钥,请验证指纹是否匹配060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配,请接受。

有多个Docker库?

如果您启用了多个Docker库,在yum installyum update命令中安装或更新时不指定版本,总是安装可能的最高版本,这可能不适合您的稳定性需求。

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

2.要安装特定版本的Docker引擎,请在repo中列出可用的版本,然后选择并安装:

a.列出和排序的版本,在您的回购。 这个例子按照版本号对结果进行排序,从最高到最低,并被截断:

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

docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable

返回的列表取决于启用了哪些存储库,并且特定于CentOS版本(在本例中由.el7后缀表示)。

b.通过完全限定的包名安装特定的版本,该包名是包名(docker-ce)加上版本字符串(第二列),从第一个冒号(:)开始,直到第一个用连字符(-)分隔的连字符。例如,docker-ce-18.09.1。

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

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

  1. 启动 Docker
sudo systemctl start docker

4.通过运行hello-world镜像来验证Docker引擎是否正确安装。

sudo docker run hello-world

这个命令下载一个测试映像并在容器中运行它。 当容器运行时,它打印一条消息并退出。

安装和运行Docker引擎。 使用sudo运行Docker命令。 继续使用Linux postinstall以允许非特权用户运行Docker命令和其他可选配置步骤。

升级 Docker引擎

要升级Docker引擎,请按照安装说明选择要安装的新版本。

从包中安装

如果您不能使用Docker的存储库来安装Docker,您可以为您的版本下载.rpm文件并手动安装它。 每次升级Docker Engine时,都需要下载一个新文件。

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

注意:

要安装一个夜间测试(预发布)包,将以上URL中的stable改为nightlytest

了解夜间频道测试频道

2.安装Docker引擎,将下面的路径更改为您下载Docker包的路径。

sudo yum install /path/to/package.rpm

Docker已安装,但未启动。 docker组已创建,但未添加任何用户。

3.启动 Docker

sudo systemctl start docker

4.通过运行hello-world镜像来验证Docker引擎是否正确安装。

sudo docker run hello-world

这个命令下载一个测试映像并在容器中运行它。 当容器运行时,它打印一条消息并退出。

安装和运行Docker引擎。 使用sudo运行Docker命令。 继续执行Linux的后安装步骤,以允许非特权用户运行Docker命令,并执行其他可选配置步骤。

升级 Docker引擎

如果要升级Docker引擎,请下载更新的包文件并重复安装过程,使用yum -y upgrade而不是yum -y install,并指向新文件。

使用便利脚本进行安装

Docker在get.docker.com提供了一个方便的脚本,可以快速且非交互式地将Docker安装到开发环境中。不推荐在生产环境中使用这个方便的脚本,但是可以作为一个示例来创建适合您需要的配置脚本。还请参阅使用存储库安装步骤,以了解使用包存储库安装的安装步骤。该脚本的源代码是开源的,可以在GitHub上的docker-install存储库中找到。

在本地运行脚本之前,一定要检查从互联网下载的脚本。 在安装之前,请先了解便利性脚本的潜在风险和局限性:

  • 该脚本需要root或sudo权限才能运行。
  • 该脚本尝试检测您的Linux发行版和版本,并为您配置包管理系统,并且不允许您自定义大多数安装参数。
  • 该脚本无需确认即可安装依赖项和建议。 这可能会安装大量的包,这取决于您的主机的当前配置。
  • 默认情况下,该脚本安装Docker、containerd和runc的最新稳定版本。 当使用此脚本配置机器时,可能会导致Docker意外的主要版本升级。 在部署到生产系统之前,始终在测试环境中测试(主要)升级。
  • 该脚本不是为升级现有Docker安装而设计的。 当使用该脚本更新现有安装时,依赖项可能不会更新到预期的版本,从而导致使用过时的版本。

    提示:在运行脚本之前预览脚本步骤

    你可以使用DRY_RUN=1选项运行脚本,以了解在安装过程中脚本将执行哪些步骤:

    curl -fsSL https://get.docker.com -o get-docker.shDRY_RUN=1 sh ./get-docker.sh

这个例子从getdocker.com下载这个脚本,并运行它在Linux上安装Docker的最新稳定版本:

curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.shExecuting docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737<...>

Docker的安装。 docker服务在基于Debian的发行版上自动启动。 在基于RPM的发行版上,如CentOS、Fedora、RHEL或SLES,您需要使用适当的systemctlservice命令手动启动它。 说明默认情况下,非root用户不能运行Docker命令。

使用Docker作为一个非特权用户,或安装在无根模式?

安装脚本需要root或sudo权限来安装和使用Docker。 如果您想要授予非root用户对Docker的访问权限,请参考Linux安装后的步骤。 Docker也可以在没有根权限的情况下安装,或者配置为在无根模式下运行。 有关在无根模式下运行Docker的说明,请参阅以非根用户(无根模式)运行Docker守护进程

安装预发行版

Docker还在test.docker.com上提供了一个方便的脚本,用于在Linux上安装Docker的预发行版。这个脚本等价于get.docker.com上的脚本,但是配置您的包管理器以启用来自我们包库的“测试”通道,其中包括Docker的稳定版本和预发布版本(beta版本,候选版本)。使用此脚本可以获得对新版本的早期访问,并在它们作为稳定版本发布之前在测试环境中评估它们。

要从“test”通道安装Linux上最新版本的Docker,请运行:

curl -fsSL https://test.docker.com -o test-docker.shsudo sh test-docker.sh<...>

使用方便脚本后升级Docker

如果你使用方便脚本安装Docker,你应该直接使用包管理器升级Docker。 重新运行便利脚本没有任何好处,如果试图重新添加已经添加到主机上的存储库,可能会导致问题。

🚡 卸载 Docker 引擎

1.卸载Docker Engine、CLI和Containerd包:

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

2.主机上的映像、容器、卷或自定义配置文件不会自动删除。 删除所有映像、容器和卷:

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

您必须手动删除任何编辑过的配置文件。

安装优化版

最后修改:2021 年 10 月 20 日 09 : 26 PM
如果觉得我的文章对你有用,请随意赞赏