Docker基本概念和框架
Docker简介
启动Docker容器:
什么是容器?
-
一种虚拟化的方案
-
操作系统级别的虚拟化
-
只能运行相同或相似内核的操作系统
-
依赖于Linux内核特性:Namespace和Cgroups(Control Group)
容器技术优点:
-
占用磁盘空间小
-
资源占用小
-
对CPU、内存资源消耗小
什么是Docker?
-
将应用程序自动部署到容器
-
Go 语言开源引擎 Github地址:https://github.com/docker/docker
-
2013年初 dotCloud
-
基于Apache2.0 开源授权协议发行
Docker的目标
-
提供简单轻量的建模方式
-
职责的逻辑分离
-
快速高效的开发生命周期
-
鼓励使用面向服务的架构
Docker的使用场景
1、使用Docker容器开发、测试、部署服务。
2、创建隔离的运行环境
3、搭建测试环境
4、构建多用的平台即服务(PaaS)基础设施
5、提供软件即服务(SaaS)应用程序
6、高性能、超大规模的宿主机部署
例如:
Docker的基本组成
-
docker client客户端
-
docker daemon守护进程
-
docker image 镜像
-
docker container 容器
-
docker registry 仓库
Docker客户端/守护进程
-
c/s架构
-
本地/远程
Docker Image 镜像
-
容器的基石
-
层叠的只读文件系统
-
联合加载(union mount)
Docker Container 容器
-
通过镜像启动
-
启动和执行阶段
-
写时复制(copy on write)
Docker Registry仓库
-
公有
-
私有
-
docker Hub
docker version 查看docker版本
docker search tutorial 查找tutorial镜像
docker pull learn/turorial 从仓库下载镜像到本地
docker run learn/turorial echo ‘ hello word’
docker run learn/turorial apt-get install -y ping 在容器中安装ping命令
docker ps -l 查看容器
docker commit 69822a9948422 learn/ping 将修改的容器提交
docker run learn/ping ping www.google.com 运行镜像
docker ps 查看你当前镜像
docker inspect efefdc74ald5 查看你运行中的容器
docker image 查看镜像
docker push learn/ping 将镜像保持到docker hub仓库上
Docker容器相关技术简介
Docker依赖的Linux内核特性
-
Namespaces 命名空间
-
Control groups (cgroups)控制组
Docker源码分析:http://www.infoq.com/cn/articles/docker-source-code-analysis-part1/