title: Docker入门(一)—介绍
tags: Docker
Dokcer简介
Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。由Docker公司(www.docker.com,前dotcloud公司,PaS市场中的老牌提供商)的团队编写,基于Apache2.0开源授权协议发行。
那么 Docker有什么特别之处呢? Docker在虚拟化的容器执行环境中增加了一个应用程序部署引擎。该引擎的目标就是提供一个轻量、快速的环境,能够运行开发者的程序,并方便高效地将程序从开发者的笔记本部署到测试环境,然后再部署到生产环境。 Docker极其简洁,它所需的全部环境只是一台仅仅安装了兼容版本的 Linux内核和二进制文件最小限的宿主机。它具有以下特性:
1.简单、轻量的建模方式:用户轻易的创建修改Docker化程序。
2.职责逻辑分离:开发人员不用再关心生产环境问题。
3.快速、高效的开发生命周期。
Docker架构
-
Docker 镜像(Images):Docker 镜像是用于创建 Docker 容器的模板。
-
Docker 容器(Container):容器是独立运行的一个或一组应用。
-
Docker 客户端(Client):Docker 客户端通过命令行或者其他工具使用 DockerAPI(https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。
-
Docker 主机(Host):一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
-
Docker 仓库(Registry):Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。
Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。
- Docker Machine:Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。
1.Dokcer镜像
镜像是构建Docker世界的基石。用户基于镜像来运行自己的容器。镜像也是 Docker生命周期中的“构建”部分。镜像是基于联合(Union)文件系统的一种层式的结构,由一系列指令一步一步构建出来。例如:
- 添加一个文件
- 执行一个命令
- 打开一个端口
也可以把镜像当作容器的“源代码”。镜像体积很小,非常“便携”,易于分享、存储和更新。
2. Registry
Docker用 Registry来保存用户构建的镜像。 Registry分为公共和私有两种。 Docker公司运营的公共 Registry叫作 Docker hub。用户可以在 Docker hub注册账号,分享并保存自己的镜像。私有 Registry可以受到防火墙的保护,将镜像保存在防火墙后面,以满足一些组织的特殊需求。
3. 容器
Docker可以帮用户构建和部署容器,用户只需要把自己的应用程序或服务打包放进容器即可。我们刚刚提到,容器是基于镜像启动起来的,容器中可以运行一个或多个进程。
总结起来, Docker容器就是:
- 一个镜像格式;
- 一系列标准的操作;
- 一个执行环境。
Docker就像一个集装箱一样,只不过一个是装货物,一个是装软件。每个容器都包含一个软件镜像,也就是容器的“货物”,而且与真正的货物一样,容器里的软件镜像可以进行一些操作。例如,镜像可以被创建、启动、关闭、重启以及销毁。Docker像集装箱一样不考虑里面装的什么,也不考虑运送(传播)到什么地方。
Docker能做什么
- 加速本地开发和构建流程,使其更加高效、更加轻量化。
- 能够让独立服务或应用程序在不同的环境中,得到相同的运行结果。
- 用 Docker创建隔离的环境来进行测试。
- Docker可以让开发者先在本机上构建一个复杂的程序或架构来进行测试,而不是一开始就在生产环境部署、测试。
- 构建一个多用户的平台即服务(PaaS)基础设施。
- 为开发、测试提供一个轻量级的独立沙盒环境。
- 提供软件即服务(SaS)应用程序。
- 高性能、超大规模的宿主机部署