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/