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
相关文章
|
17天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
17天前
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
103 3
Ubuntu 18.04 安装Docker实战案例
|
17天前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
62 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
4天前
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
|
15天前
|
Cloud Native 持续交付 Docker
云原生技术实践:Docker容器化部署教程
【9月更文挑战第4天】本文将引导你了解如何利用Docker这一云原生技术的核心工具,实现应用的容器化部署。文章不仅提供了详细的步骤和代码示例,还深入探讨了云原生技术背后的哲学,帮助你理解为何容器化在现代软件开发中变得如此重要,并指导你如何在实际操作中运用这些知识。
|
22天前
|
Ubuntu Docker 索引
2024年最新版 Ubuntu 20+ 上安装 Docker
这篇文章提供了在Ubuntu 20+版本上安装Docker的详细步骤,包括更新软件包索引、安装依赖包、添加Docker官方GPG密钥、设置Docker稳定版仓库、安装Docker CE以及验证安装是否成功,并指导如何将用户添加到docker组以非root用户身份运行Docker。
|
25天前
|
存储 搜索推荐 应用服务中间件
深入探索Docker 安装 Tomcat
【8月更文挑战第26天】
36 4
|
24天前
|
NoSQL Redis 数据安全/隐私保护
深入探索利用Docker安装Redis
【8月更文挑战第27天】
61 2
|
28天前
|
数据安全/隐私保护 iOS开发 Docker
深度了解MacOS Docker 安装
【8月更文挑战第23天】深度了解MacOS Docker 安装
31 1