Docker 安装图文教程

简介: Docker 安装图文教程

🟧1. Docker 的基本组成

🟠1.1 镜像(image)

镜像是一个只读模板,其中包含创建 Docker 容器的说明,一个镜像可以创建很多容器。镜像相当于容器的"源代码",docker 镜像文件类似于 Java 类模板,而 docker 容器实例类似于 Java 中 new 出来的实例对象。


🟠1.2 容器(Container)

Docker 利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是镜像的可运行实例。就像是 Java 中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。


🟠1.3 仓库(Repository)

仓库(Repository)是集中存放镜像文件(Dockerfile)的场所,类似于 maven 仓库,存放各种 jar 包的地方,github 仓库,存放各种 git 项目的地方。Docker 公司提供的官方 registry 被称为 Docker Hub,存放各种镜像模板的地方。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载,国内的公开仓库包括阿里云 、网易云等。


🟧2. Docker 架构

2e718f6de6d94987ae2f2182c528d9c8.png

Docker 采用 C/S 架构。Docker 客户端与 Docker 守护进程对话,守护进程负责构建、运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以在同一系统上运行,或者可以将 Docker 客户端连接到远程 Docker 守护程序,它们之间的通信通过 UNIX 套接字或网络接口实现。另一个 Docker 客户端是 Docker Compose,它允许您使用由一组容器组成的应用程序。


🟧3. 安装 Docker

docker 的安装步骤具体可以参考官网,这里我结合官网给出的步骤以及国内的实际操作的情况,进行简单的介绍。

🟠3.1 准备工作

🔸3.1.1 操作系统需求

想要安装 docker 引擎,首先操作系统必须是 CentOS 7 或者 8 版本,不支持 CentOS 7 以下或测试版本。

查看 Linux 操作系统版本,可以使用命令:

cat /etc/redhat-release

执行命令,即可查看版本,如下图:

2e718f6de6d94987ae2f2182c528d9c8.png

此外,必须启用 CentOS-Extras 存储库,此存储库在默认情况下是启用的,但如果禁用了它,则需要重新启用它。其实,这里只要没有动过这个设置,就不用管它了。

🔸3.1.2 卸载旧版本

如果你手上用的是一台新的机器,确定之前没有安装过 docker,那么下面的可以不用看了。


如果安装了旧版本的 Docker 或 Docker-engine,需要卸载它们以及相关的依赖项。

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

如果 yum 提示 “none of these packages are installed”,则表示卸载成功。

🟠3.2 开始安装

安装 docker 的方式有多种,可以选择使用 yum 工具从 docker 仓库下载安装,这样安装和以后的升级任务都非常方便;也可以选择手动地下载 RPM 包,手动地安装和进行以后的升级,这种安装方式主要是针对公司内网限制无法访问外网的情况下使用;还有就是在测试或生产环境中,可以使用自动化的脚本进行安装。


这里官网推荐的是第一种,即使用 yum 工具从 docker 仓库下载并安装,也是我下面要介绍的安装方式,后面几种安装方式交给大家自己再去研究学习。

🔸3.2.1 建立 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

需要注意的是,在建立稳定仓库时,可能会出现以下报错:

1   [Errno 14] curl#35 - TCP connection reset by peer
2   [Errno 12] curl#35 - Timeout

其中主要原因是因为,docker 服务器在国外,国内访问时可能会因为网络连接问题超时等待。


这时,只需要换成国内的镜像就可以了,例如阿里云镜像:

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

之后,更新 yum 软件包索引,执行以下命令

yum makecache fast

这样做是为了在安装软件包的时候,生成索引缓存,提高安装速度。

🔸3.2.2 安装 docker-engine

安装最新版的 docker-engine(新版本换了个叫法,称为 docker-ce) 和 docker-container,执行以下命令:

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

如果想要安装指定版本的 docker-engine,可以先查询当前仓库中可以获取的版本,进行选择并安装,执行以下命令:

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

版本号从高到低列出:

docker-ce.x86_64               3:20.10.9-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.8-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.7-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.6-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.5-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.4-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.3-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.2-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.14-3.el8                docker-ce-stable 
docker-ce.x86_64               3:20.10.14-3.el8                docker-ce-stable
docker-ce.x86_64               3:20.10.1-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:20.10.13-3.el8                docker-ce-stable 
docker-ce.x86_64               3:20.10.12-3.el8                docker-ce-stable 
docker-ce.x86_64               3:20.10.11-3.el8                docker-ce-stable 
docker-ce.x86_64               3:20.10.10-3.el8                docker-ce-stable 
docker-ce.x86_64               3:20.10.0-3.el8                 docker-ce-stable 
docker-ce.x86_64               3:19.03.15-3.el8                docker-ce-stable 
docker-ce.x86_64               3:19.03.14-3.el8                docker-ce-stable 
docker-ce.x86_64               3:19.03.13-3.el8                docker-ce-stable

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

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

例如,安装 docker-ce-19.03.13 版本,执行以下命令:

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

🔸3.2.3 启动 docker

安装完成之后,执行以下命令启动 docker:

systemctl start docker

🔸3.2.4 测试

测试是否正确安装了 docker-ce,查看版本:

docker version

打印相关信息:

Client: Docker Engine - Community
 Version:           20.10.14
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        a224086
 Built:             Thu Mar 24 01:47:44 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true
Server: Docker Engine - Community
 Engine:
  Version:          20.10.14
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       87a90dc
  Built:            Thu Mar 24 01:46:10 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.11
  GitCommit:        3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc:
  Version:          1.0.3
  GitCommit:        v1.0.3-0-gf46b6ba
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

最后,再执行以下命令,运行 hello-world 镜像:

docker run hello-world

打印以下信息:

Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

需要注意的是,我之前已经运行过 hello-world 镜像了,所以会直接显示 “Hello from docker!”,当第一次运行 hello-world 时,仓库里是没有的,所以会自动地从远程仓库 pull hello-world,那么等它自动获取到之后,重新 run hello-world 即可。

🟠3.3 卸载命令

如果想要卸载 docker,可以参考以下命令:

systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
相关文章
|
28天前
|
关系型数据库 MySQL Java
Docker Compose详细教程(从入门到放弃)
Docker Compose详细教程(从入门到放弃)
116 0
|
1月前
|
Oracle 关系型数据库 数据库
|
1月前
|
Ubuntu 虚拟化 Docker
Docker的安装
Docker的安装
49 0
|
1月前
|
Ubuntu Docker 容器
如何在Ubuntu上安装Docker?
【2月更文挑战第10天】
230 0
|
1月前
|
Oracle 关系型数据库 数据库
如何利用 Docker 安装 Oracle 数据库
【2月更文挑战第14天】
86 0
|
4天前
|
时序数据库 Docker 容器
Docker安装InfluxDB
Docker安装InfluxDB
8 0
|
7天前
|
关系型数据库 MySQL 数据库
docker自定义安装mysql 5.7
docker自定义安装mysql 5.7
15 0
|
18天前
|
Linux Shell 开发工具
CentOS8中Docker安装及部署
CentOS8中Docker安装及部署
64 0
|
19天前
|
弹性计算 Serverless 数据库
ECS安装问题之docker安装如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
21天前
|
jenkins Java 持续交付
Docker搭建持续集成平台Jenkins最简教程
Jenkins 是一个广泛使用的开源持续集成工具,它能够自动化构建、测试和部署软件项目。在本文中,我们将使用 Docker 搭建一个基于 Jenkins 的持续集成平台。
106 2