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
相关文章
|
3月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
14天前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
97 3
docker 安装 Postgres 17.6
kde
|
3月前
|
文件存储 数据安全/隐私保护 开发者
群晖NAS Docker镜像源加速配置教程
本教程介绍了群晖NAS用户如何通过配置轩辕镜像加速服务提升Docker镜像拉取速度。内容包括配置前准备、详细设置步骤及日常使用说明,帮助用户快速完成配置并享受高效稳定的镜像下载体验。
kde
1893 59
|
6月前
|
存储 安全 C++
Odoo 安装方式选择:源码安装 vs Docker
Odoo部署常采用源码编译或Docker容器化,但分别面临依赖复杂、版本风险和服务化难题,以及镜像臃肿和扩展受限的问题。Websoft9提出混合方案,融合两者优势:通过智能环境适配、三阶段部署流程(环境预检、混合模式选择、持久化配置)及声明式YAML配置,实现高效、灵活的双模运行时。此方案显著降低依赖冲突解决时间(从83分钟至0),生产环境构建耗时缩短至8分钟,并达100% CVE漏洞修复率,适合ERP定制开发与规模化部署的企业需求。
|
3月前
|
NoSQL Redis Docker
使用Docker Compose工具进行容器编排的教程
以上就是使用Docker Compose进行容器编排的基础操作。这能帮你更有效地在本地或者在服务器上部署和管理多容器应用。
339 11
|
4月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
244 18
|
4月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
至此,这次神秘而简明的部署之旅告一段落。祝你在利用RabbitMQ打造消息队列时,一切顺风顺水!
194 8
|
4月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
413 4
|
3月前
|
Linux Docker Windows
windows docker安装报错适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新。
适用于 Linux 的 Windows 子系统需更新至最新版本(如 wsl.2.4.11.0.x64.msi)以解决 2025 年 Windows 更新后可能出现的兼容性问题。用户可通过运行 “wsl.exe --update” 或访问提供的链接下载升级包进行更新。
868 0