什么是Docker
学习在Linux(RockyLinux)中安装使用Docker来配置软件的功能
Docker是一个用来开发、运输和运行应用程序的开放平台。使用Docker可以将应用程序与基础结构分离,以便快速交付软件。使用Docker,您可以以管理应用程序的方式管理基础架构。通过利用Docker的方法快速传送、测试和部署代码,可以显著减少编写代码和在生产中运行代码之间的延迟。
为什么使用Docker
· 更快速的应用交付和部署:
传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。
· 更便捷的升级和缩扩容:
随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。
· 更简单的系统运维:
应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。
· 更高效的计算资源利用:
Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor [管理程序] 支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。
Docker运行架构图
相关资料跳转
Docker官网:http://www.docker.com
Docker Hub官网(镜像仓库):https://hub.docker.com
所有步骤,均参考官方文档:https://docs.docker.com/engine/install/centos/
安装Docker
官方网站提供的3种安装方式
设置docker仓库,并且从仓库安装所需内容。
下载RPM安装包,手动更新安装。
为测试和开发环境使用自定义脚本安装。
三种方式中第一种,从docker仓库中安装是比较简单的
这种方式需要当前虚拟机有网络环境
确定具备网络环境再运行下面命令
RockyLinux支持使用yum命令安装各种程序
yum命令安装程序类似手机中的应用商店一样
先安装yum-utils包,实现更方便的安装"应用商店"中提供的程序
yum install -y yum-utils
指定docker仓库路径
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
阿里仓库路径
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
执行安装Docker
也是使用yum命令
yum -y install docker-ce docker-ce-cli containerd.io
下载和安装需要一些时间,如果下载慢,配置上面的阿里Docker仓库地址
运行完成后,当前Linux系统就安装好的Docker
我们需要输入启动Docker的命令,真正让Docker运作起来
systemctl start docker
测试Docker
为了保证我们Docker运行的正常
Docker提供了一个专门测试Docker功能的镜像
docker run hello-world
运行可能需要较短时间
运行结果中出现如下内容,表示一切正常
Hello from Docker!
This message shows that your installation appears to be working correctly.
Docker名词解释
容器(container)
首先需要了解什么是容器,容器就是一个进程,内部是独立运行的一个或者是一组应用。它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。
镜像(image)
镜像(Image)就是一个只读的模板文件。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。 就好似 Java 中的 类和对象,类就是镜像,对象就是容器!也可以把镜像看成是模具,而镜像创建出来的容器就是通过这个模具创建的一个一个的实际产品。
宿主机(host)
宿主机就是我们调用命令使用镜像创建容器的服务器(linux)。
镜像仓库(repository)
一个用来容纳多个镜像的仓库,可以链接仓库获取你想要的内部镜像,一般一个镜像仓库中包含多个不同tag的镜像。
镜像服务器(registry)
镜像仓库占用的服务器,这里注意一个镜像服务器未必只有一个仓库,可以有很多仓库,每个仓库又保管的是不同镜像。
客户端(docker-client)
调用docker命令,操作镜像,容器的进程。只要能链接宿主机,操作docker的进程都是docker-client。
Docker基础命令
Docker命令格式
Docker命令的语法结构
docker 子命令 [选项]
docker都有哪些子命令呢,我们可以使用docker的helper子命令查看
docker --help
如果想查询具体的子命令的使用方式
docker 子命令 --help
我们最常用的子命令之一:启动docker容器的run的相关帮助可以
docker run --help
当然也可以查询官方文档或百度了解更多内容
https://docs.docker.com/reference/
images命令
docker images命令主要能够完成查看当前本地镜像仓库的功能
docker images
这个命令的返回结果显示:
REPOSITORY:镜像仓库名,也叫作镜像名。
TAG:标签,常用版本号标识仓库,如果是latest就是最新版本。
IMAGE ID:镜像id。
CREATED:创建镜像时间。
SIZE:大小。
docker images命令的常用选项如下
-a: 显示所有信息
-q: 只显示镜像id,在镜像较多的时候比较常用
search命令
在拉取镜像之前,我们要先明确正确的镜像名称
我们可以输入查询关键字,对镜像仓库进行搜索
search命令,可以搜索当前系统绑定的远程镜像服务器中的内容
docker search mysql
这个命令的返回结果显示:
NAME:镜像名称。
DESCRIPTION:镜像描述。
STARS:镜像星级,越高表示越热,使用人越多。
OFFICIAL:是否官方镜像。
AUTOMATED:是否支持自动化部署。
pull命令
根据我们上面搜索得到的结果
确认关键字之后
我们就可以使用pull命令将我们查询出的软件拉取到本地仓库了
docker pull [镜像名称]
docker pull mysql
默认下载最新版本
如果要指定版本号可以在名称后指定
docker pull mysql:5.7.35
至于要指定的版本号有什么
可以在相关的官方网站查询