一、Docker简介
1.1、Docker是什么
Docker是一个用于开发、发布和运行应用程序的开放平台;使您能够将应用程序与基础设施分离,以便您可以快速交付软件。不像虚拟机那样笨重(比如:我需要将一个安装好nginx环境的内容分享给其他人:
方式一【使用虚拟】(应用程序Nginx与基础设施即Linux系统并没有分离,完全依赖当前配置的Linux系统环境):在虚拟机中我需要先创建一个对应的Liunx系统环境,然后再在该虚拟的Linux环境中下载Nginx并且进行对应的环境配置,最后就是将整个虚拟机的Linux系统都打成压缩包,整个压缩包是很大,大约有2G至3G,且还需要通过其他的方式将这个打压缩包发送给对应的人,十分繁琐,费时且耗费资源,而其实我们真正只需要的Nginx环境内容只6M左右,得不偿失。
方式二【使用Docker】(应用程序Nginx与基础设施是分离的):使用Docker我们只用拉取并启用一个nginx的容器,然后进入容器进行对应的环境配置测试完成后就可以直接打包发布了,整个内容大概在100M以内,基本上就是这个应用程序的大小,管理和操作都十分快速便捷,有很高的灵活性)。
Docker 提供了在称为容器的松散隔离环境中打包和运行应用程序的能力。隔离和安全性使您可以在给定主机上同时运行多个容器。容器是轻量级的,包含运行应用程序所需的一切,因此您不需要依赖主机上安装的内容。您可以在工作时共享容器,并确保与您共享的每个人都获得以相同方式工作的相同容器。
1.2、Docker三大核心
序号 | Docker的三大核心 | 说明 |
1 | 镜像(image) | 使用Docker打包出来的每个软件(应用程序),都称之为Docker镜像(打包出来的镜像内容是个压缩包文件,里面存放着安装好的程序) |
2 | 容器(container) | 容器是利用镜像创建运行的实例(它可以被执行创建、启动、停止、删除操作)且每个容器都是相互隔离、保证安全的平台(可以将容器看作是一个简单版的Linux系统,包含应用程序必备的系统权限、端口、进程、网络和用户组等内容)。 |
3 | 仓库(repository) | 仓库是用来保存镜像的统一控制中心(里面存储着用户上传的所有镜像内容;Docker仓库属于仓库注册服务器(Registry),官方提供的Docker Hub是任何人都可以使用的公共注册表,Docker 默认在 Docker Hub 上查找镜像。你也可以配置运行自己的私人注册表) |
1.3、Docker的架构
Docker是使用客户端-服务器(Client-Server 简称CS)架构;Docker的客户端是负责发送对应的命令给Docker守护进程(daemon),而Docker守护进程负责处理客户端请求并管理 Docker 的镜像构建、运行和分发 Docker 容器的重要工作。
Docker 客户端和守护进程可以在同一系统上运行,也可以将 Docker 客户端连接到远程 Docker 守护进程。 Docker 客户端和守护进程使用 REST API 通过 UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它允许您使用由一组容器编排组成的应用程序。
Docker 从 1.31.1 后分 CE(Community Edition 社区版)和 EE(Enterprise Edition 企业版)两个版本(目前基本上都是使用带ce或ee的版本了),docker.io、docker-io、docker-engine是1.31.1之前的版本。
docker的各个版本详情介绍https://zhuanlan.zhihu.com/p/305572519