Docker简介


启动Docker容器:

Docker基本概念和框架_docker

什么是容器?

  • 一种虚拟化的方案

  • 操作系统级别的虚拟化

  • 只能运行相同或相似内核的操作系统

  • 依赖于Linux内核特性:Namespace和Cgroups(Control Group)


容器技术优点:

  • 占用磁盘空间小

  • 资源占用小

  • 对CPU、内存资源消耗小

Docker基本概念和框架_docker_02

什么是Docker?

  • 将应用程序自动部署到容器

  • Go 语言开源引擎 Github地址:https://github.com/docker/docker

  • 2013年初 dotCloud

  • 基于Apache2.0 开源授权协议发行


Docker的目标

  • 提供简单轻量的建模方式

  • 职责的逻辑分离

  • 快速高效的开发生命周期

  • 鼓励使用面向服务的架构


Docker的使用场景

1、使用Docker容器开发、测试、部署服务。

2、创建隔离的运行环境

3、搭建测试环境

4、构建多用的平台即服务(PaaS)基础设施

5、提供软件即服务(SaaS)应用程序

6、高性能、超大规模的宿主机部署


例如:

1、腾讯万台规模的Docker应用实践



Docker的基本组成


  • docker client客户端

  • docker daemon守护进程

  • docker image 镜像

  • docker container 容器

  • docker registry 仓库

 

Docker客户端/守护进程

  • c/s架构

  • 本地/远程


Docker Image 镜像

  • 容器的基石

  • 层叠的只读文件系统

  • 联合加载(union mount)

Docker基本概念和框架_docker_03

Docker  Container 容器

  • 通过镜像启动

  • 启动和执行阶段

  • 写时复制(copy on write)

Docker基本概念和框架_docker_04

Docker Registry仓库

  • 公有

  • 私有

  • docker Hub

Docker基本概念和框架_docker_05

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_06

Docker基本概念和框架_docker_07

Docker基本概念和框架_docker_08

Docker基本概念和框架_docker_09




Docker容器相关技术简介

Docker依赖的Linux内核特性

  • Namespaces 命名空间

  • Control groups (cgroups)控制组

Docker基本概念和框架_docker_10

Docker基本概念和框架_docker_11

Docker基本概念和框架_docker_12

Docker基本概念和框架_docker_13

Docker基本概念和框架_docker_14


Docker源码分析:http://www.infoq.com/cn/articles/docker-source-code-analysis-part1/