Docker 的详细介绍 Docker 简介
Docker 是一个开源的应用容器引擎,基于 Go 语言
可以打包应用以及依赖包到一 个轻量级、可移植的容器中
Docker 打包好了的容器,可以发布到任何流行的 Linux 机器上,也可以实现虚拟化
容器是完全使用沙箱机制,相互之间不会有任何接口(独立)
容器性能开销极低
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器
Docker 是实现容器技术的一种工具
Docker 容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样
工作中的应用场景
Web 应用的自动化打包和发布
自动化测试和持续集成、发布(我们的重点)
组建微服务架构,通过多个容器,一台机器可以跑多个服务,因此在本机可以模拟出微服务架构
将软件打包到容器中,以进行开发,运输和部署
容器是打包代码及其所有依赖项的软件的标准单元,所以该软件可以从一个计算机环境快速可靠地在另一个计算机环境进行运行
Docker 容器镜像是一个轻量级、独立的、可执行的软件包,它包含运行应用程序所需的一切:运行环境、系统工具、系统库、配置
容器镜像在运行时成为容器
容器化软件都可用于基于 Linux 和 Windows 的应用程序,始终运行相同
容器将软件与其环境隔离开来,即使存在差异,但软件仍然可以运行
在 Docker 镜像上运行的 Docker 容器的优势
标准:Docker 创建了容器的行业标准,因此它们可以在任何地方移植
轻巧:容器共享机器的操作系统内核,因此不需要每个应用程序都用操作系统,从而提高了服务器效率,并降低了服务器资源的消耗
安全:容器中的应用程序更安全,Docker 提供业界最强大的默认隔离功能
Docker 的组成
Docker 架构图
架构图箭头的意思大概是
在 Docker Client 敲 Docker 命令调用 Docker API 来操作 Host 上的 Docker 服务
Docker 服务可以从仓库拉镜像到本机,也可以用本机镜像创建一个容器并运行
仓库(Registry)
集中存放镜像文件的场所
每个镜像文件有不同的标签(不同的版本)
最大的开放仓库是Docker Hub: https://hub.docker.com/ 存放了数量庞大的镜像供用户下载
国内的公开仓库包括阿里云,网易云等
仓库分为公开仓库(public)和私有仓库(private)两种形式
镜像(Images)
创建容器的模板
一个镜像可以创建很多容器
容器(Containers)
容器是镜像生成的运行实例
Docker 利用容器独立运行一个或一组应用(服务)
每个容器之间是相互隔离的
它可以被启用、开始、停止、删除
主机(HOST)
一个物理机或虚拟机
用于运行 Docker 守护进程和多个容器
可存放多个镜像
也称为宿主机,node节点
Docker 服务端(daemon)
Docker 守护进程,运行 Docker 容器
Docker 客户端(client)
客户端使用 Docker 命令或其他工具调用 Docker API
当然也可以在 HOST 直接敲 Docker 命令