一、docker简介
1.1 什么是Docker
Docker 是一个用Go语言开发的开源容器项目。通过利用操作系统现有的机制和特性,它实现了比传统虚拟机更轻量级的虚拟化(简单来说,Docker内嵌一个极小的系统,例如Linux仅需5M左右,Windows亦如此)。Docker实现的是内核级虚拟化,旨在让项目运行环境“一次构建,随处运行”。
在Docker中,可以选择使用Windows或Linux系统,默认使用基于Ubuntu的Linux系统,仅需5M左右,包含最基本的功能。
利用Docker创建的运行环境称为Docker容器,容器是通过Docker镜像创建的,Docker镜像可以存储在私有仓库或公共仓库中。官方网站:https://www.php.cn/link/7d44eb268a656ba8bf731a62eb9156af
总结:
学习Docker主要涉及两方面:1. 在Docker中安装软件 2. 将项目部署到Docker
1.2 Docker与虚拟机(VM)的对比
Docker与虚拟机(VM)的功能非常相似。以下是两者的对比:
Docker:面向内核和软件,启动时间为秒级 虚拟机:面向硬件,启动时间为分钟级
1.3 Docker架构(重点)
1.3.1 Docker daemon(Docker守护进程)
Docker daemon是一个在宿主机(DOCKER_HOST)上运行的后台进程。我们可以通过Docker客户端与它进行通信。
1.3.2 Client(Docker客户端)
Docker客户端是Docker的用户界面,它接受用户命令和配置标志,并与Docker daemon通信。图中,docker build等都是Docker的相关命令。
1.3.3 Images(Docker镜像)
Docker镜像是只读模板,包含创建Docker容器的说明。与虚拟机中的快照类似。在虚拟机中,可以根据快照克隆一台虚拟机。在Docker中,根据Images创建容器。
1.3.4 Container(容器)
容器是镜像的可运行实例。容器相当于VMware中克隆出的每一个虚拟机,但容器的体积远小于虚拟机。
1.3.5 Registry(仓库)
Docker Registry是一个集中存储和分发镜像的服务。我们构建完Docker镜像后,可以在当前宿主机上运行。但如果想在其他机器上运行这个镜像,我们就需要手动拷贝。此时,可以使用Docker Registry来避免镜像的手动拷贝。
一个Docker Registry可以包含多个Docker仓库;每个仓库可以包含多个镜像标签;每个标签对应一个Docker镜像。这与Maven的仓库类似,如果把Docker Registry比作Maven仓库,那么Docker仓库可以理解为某jar包的路径,而镜像标签则可以理解为jar包的版本号。
二、Docker安装与启动
Docker有Windows和Linux版本。以下以在Linux(CentOS8)上的安装为例进行演示,并确保虚拟机可以连接到外网。
1 先克隆一个虚拟机
2 下载docker
1.1 下载docker-ce repo,为本地yum提供远程repo信息。
1.2 安装依赖
1.3 安装docker-ce
3 启动docker
3.1 启动命令
3.2 查看Docker状态