Docker 基础
2019-03-07 本文已影响0人
萧何爱英语
Docker
- Run applications securely isolated in a container.
- Packaged with all its dependencies and libraries.
- Build, Ship, and Run Any App, Anywhere.
思考:Docker 是容器,但容器不仅只是Docker,那为什么Docker 兴起了,之前有么?Docker 以后又有那些类似产品?
Q1:Docker 以前有容器么
- Docker 以前早有容器,甚至 Docker 的早期版本就是基于 LXC(Linux Container)开发的
- Google 的 Borg 系统有类似的产品,Oracle 也有
Q2:为什么Docker火了
- 时机好,来的是时候,有了微服务架构
- 镜像特性,即装箱技术,参照下图 Logo

- Build, Ship, and Run Any App, Anywhere
Q3:Docker之后有什么类似产品
- Kata Container【Openstack出品】
- Gvisor【Google出品】
- Rkt【CoreOS出品】
Docker Architecture


完整的Docker有以下组成部分
- Docker客户端(Client)
- Docker守护进程(Daemon)
- Docker镜像(Image)
- Docker容器(Container)
- 镜像仓库(Registry or Harbor)
Docker 架构(v1.11+)
组件
contained
runC
dockershim

Docker 的商业化道路
2017 年年初,docker 公司将原先的 docker 项目改名为 moby,并创建了 docker-ce 和 docker-ee。
三者关系:
- moby是继承了原先的 docker 的项目,是社区维护的开源项目,谁都可以在 moby 的基础上打造自己的容器产品
- docker-ce 是 docker 公司维护的开源项目,是一个基于 moby 项目的免费的容器产品
- docker-ee 是 docker 公司维护的闭源产品,是docker公司的商业产品
公司 | 开源版本 | 社区版本 | 企业版本 |
---|---|---|---|
Redhat | Fedora | CentOS | RHEL |
Docker | Moby | Docker-CE | Docker-EE |

Docker 的安装与配置
当你运行一个容器的时候
$docker run -it nginx /bin/bash
按次序,Docker Engine做:
- Pull nginx 镜像
- 创建一个新的容器分配文件系统,挂载一个读写层
- 创建网络命名空间,分配一个网络/桥接口
- 设置一个IP地址
- 执行一个指定的进程[/usr/bin/nginx]
- 捕获和获取应用的输出