还记得咱们运行的第一个容器吗?如今经过它来体会一下 Docker 各个组件是如何协做的。docker
容器启动过程以下:数据库
Docker 客户端执行 docker run
命令。django
Docker daemon 发现本地没有 httpd 镜像。服务器
daemon 从 Docker Hub 下载镜像。负载均衡
下载完成,镜像 httpd 被保存到本地。运维
Docker daemon 启动容器。学习
docker images
能够查看到 httpd 已经下载到本地。测试
docker ps
或者 docker container ls
显示容器正在运行。ui
Docker 借鉴了集装箱的概念。标准集装箱将货物运往世界各地,Docker 将这个模型运用到本身的设计哲学中,惟一不一样的是:集装箱运输货物,而 Docker 运输软件。spa
每一个容器都有一个软件镜像,至关于集装箱中的货物。容器能够被建立、启动、关闭和销毁。和集装箱同样,Docker 在执行这些操做时,并不关心容器里到底装的什么,它无论里面是 Web Server,仍是 Database。
用户不须要关心容器最终会在哪里运行,由于哪里均可以运行。
开发人员能够在笔记本上构建镜像并上传到 Registry,而后 QA 人员将镜像下载到物理或虚拟机作测试,最终容器会部署到生产环境。
使用 Docker 以及容器技术,咱们能够快速构建一个应用服务器、一个消息中间件、一个数据库、一个持续集成环境。由于 Docker Hub 上有咱们能想到的几乎全部的镜像。
不知你们是否意识到,潘多拉盒子已经被打开。容器不但下降了咱们学习新技术的门槛,更提升了效率。
若是你是一个运维人员,想研究负载均衡软件 HAProxy,只须要执行docker run haproxy
,无需繁琐的手工安装和配置既能够直接进入实战。
若是你是一个开发人员,想学习怎么用 django 开发 Python Web 应用,执行 docker run django
,在容器里随便折腾吧,不用担忧会搞乱 Host 的环境。
不夸张的说:容器大大提高了 IT 人员的幸福指数。