Docker介绍
总体概述 docker是什么 是什么? 开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化 完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),且容器性能开销极低 基于 Go 语言开源的应用容器引擎,遵从 Apache2.0 协议开源 为什么? 一次构建,随处运行 更快速的应用交付和部署 更便捷的升级和扩缩容 更简单的系统运维; Docker与虚拟机对比 Docker的镜像层一般很小,只有几十KB,而虚拟机则通常以GB为单位。 性能方面,Docker依附于宿主机,所以性能接近宿主机,而虚拟机相对于原主机来说性能较差。资源利用率方面,Docker的资源利用率较高,而虚拟机的资源利用率较低。 隔离性方面,Docker和虚拟机都具有安全隔离的特性。 Docker直接在宿主机内核上运行,而虚拟机运行在隔离层Hypervisor上。 Docker可同时运行上千个容器,而虚拟机相对厚重,最多只能启动几十个。 在运行速度方面,Docker优于虚拟机,Docker容器的启动和停止可以在秒级实现,而传统的虚拟机方式要慢得多 架构 三个基础概念 镜像(image):Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器 镜像唯一标识是其 ID 和摘要,而一个镜像可以有多个标签 并非是像一个 ISO 那样的打包文件,是一个虚拟的概念。是由一组文件系统组成,或者说,由多层文件系统联合组成 容器(container): Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。 可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。 可把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写 仓库(repository):仓库(Repository)是集中存放镜像文件的场所 仓库注册服务器上存放着多个仓库,每个仓库中包含多个镜像,每个镜像有不同的标签(tag) 使用镜像 Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像 获取镜像 Docker 镜像仓库获取镜像的命令是 docker pull $ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 对Docker Hub,如果不给出用户名,则默认为 library,就是官方镜像 $ docker pull ubuntu:18....