《第一本Docker》笔记(一)之Docker简介

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

一、Docker简介

   1.Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。Docker的特别之处:Docker在虚拟化的容器执行环境中增加了一个应用程序部署引擎。该引擎的目标就是提供一个轻量、快速的环境,能够运行开发者的程序,并方便高效地将程序从开发者的笔记本部署到测试环境,然后再部署到生产环境。

   2.Docker提供一个简单、轻量的建模方式:Docker依赖于写时复制模型(写时复制技术:内核只为新生成的子进程创建虚拟空间结构,它们来复制于父进程的虚拟究竟结构,但是不为这些段分配物理内存,它们共享父进程的物理空间,当父子进程中有更改相应段的行为发生时,再为子进程相应的段分配物理空间。

3. Docker提供职责的逻辑分离:开发人员只关心容器中运行的应用程序,运维人员只需要关心如何管理容器。Docker设计的目的就是加强开发人员写代码的开发环境与应用程序要部署到生产环境的一致性。

4. Docker提供快速、高效的开发生命周期:Docker的目标之一是缩短代码从开发、测试到部署、上线运行的周期,是应用具有可移植性。

5. Docker鼓励面向服务的架构和微服务架构:Docker推荐单个容器只运行一个应用程序或者进程,这样就行程了一个分布式的应用程序模型。

6. Docker的核心组件:

  Docker客户端和服务器:Docker也是一个客户/服务器(C/S)架构的程序。Docker客户端只需要向Docker服务端或者守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。具体架构见下图:


wKioL1VIsXrS-fOhAADcI0iP5dI674.jpg           Registry:用来保存用户的构建的镜像。Registry分为公共和私有两种。用户可以使用Docker Hub上的公共镜像,也可以在https://hub.docker.com/account/singnup/上注册自己的账号存储和分享自己的私有镜像。(也可以架构自己私有的Registry  Docker镜像:用户基于镜像来运行自己的容器,镜像是基于联合文件系统的一种层式的结构。有一系列指令一步一步构建出来。其实,也可以将镜像看做是容器的源代码。镜像体积小,易于分享、存储和更新。

  Docker容器:容器内可以运行一个或者多个进程。Docker借鉴了标准集装箱的概念à每个容器包含有一个软件镜像,也就是容器的货物。

7. Docker可以应用的一些场景:

  加速本地开发和构建流程,使其更加高效、更加轻量化;

  能够让独立服务或者应用程序在不同的环境中,得到相同的运行结果;

  Docker创建隔离的环境进行测试;

  Docker可以让开发者先在本机上构建一个复杂的程序或者架构来进行测试;

  构建一个多用户的平台即服务(Pass)基础设施;

  为开发、测试提供一个轻量级的独立沙盒环境,或者将独立的沙盒环境用于技术教学;

  提供软件即服务(Saas)应用程序;

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

8. 基于和围绕Docker生态环境构建的早期项目列表:http://blog.docker.com/2013/07/docker-projects-from-the-docker-community/

9. Docker的技术组件

  文件系统隔离:每个容器都有自己的root文件系统

  进程隔离:每个容器都运行在自己的进程环境中

  网络隔离:容器间的虚拟网络接口和IP地址都是分开的

  资源隔离和分组:使用cgroupCPU和内存之类的资源独立分配给每个Docker容器

  写时复制:文件系统都是通过写时复制创建的,这就意味着文件系统是分层的、快速的,而且占用的磁盘空间更小

  日志:容器产生的STDOUTSTDERRSTDIN(输入输出错误日志)这些IO流都会被收集并记入日志,用来进行日志分析和故障排错

  交互式shell:用户可以创建一个伪tty终端,将其连接到STDIN,为容器提供一个交互式的shell

10.Docker资源:

   Docker官网:http://www.docker.com/

   Docker Hubhttp://hub.docker.com

   Docker 官方博客:http://blog.docker.com/

   Docker 官方文档:http://docs.docker.com/

   Docker 快速入门指南:http://www.docker.com/tryit/

   Docker GitHub源代码:http://github.com/docker/docker

   Docker Forgehttp://github.com/dockerforge 收集各种Docker工具、组件和服务

   Docker 邮件列表:http://groups.google.com/forum/#!forum/docker-user










本文转自 南非波波 51CTO博客,原文链接:http://blog.51cto.com/nanfeibobo/1642260,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
7月前
|
测试技术 网络安全 数据安全/隐私保护
【Docker项目实战】使用Docker部署Mininote轻量级笔记工具
【4月更文挑战第7天】使用Docker部署Mininote轻量级笔记工具
294 2
|
7月前
|
运维 Linux Docker
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
|
3月前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
183 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
3月前
|
存储 Unix 虚拟化
Docker容器简介
Docker是一种轻量级的虚拟化技术,它通过容器化应用,提高了硬件资源利用率,简化了应用的部署、运输和运行,且与虚拟机相比,具有更快的交付速度和更低的资源消耗。
59 2
|
5月前
|
存储 Linux 虚拟化
docker 简介
docker 简介
56 6
|
5月前
|
Java Linux 虚拟化
docker(一):docker简介
docker(一):docker简介
44 1
|
6月前
|
测试技术 Linux 数据库
【Docker项目实战】使用Docker部署Xnote轻量级笔记系统
【6月更文挑战第19天】使用Docker部署Xnote轻量级笔记系统
116 4
|
7月前
|
Linux 应用服务中间件 nginx
docker 网络简介
docker 网络简介
|
7月前
|
Java 虚拟化 Docker
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
|
7月前
|
Linux Docker 容器
【微服务系列笔记】Docker
docker是一种容器技术,它主要是用来解决软件跨环境迁移的问题和同一环境下依赖冲突问题。 Docker可以运行在Mac, Windows, linux等操作系统上,常用于适用于构建和部署分布式应用、微服务架构。
89 0
【微服务系列笔记】Docker
下一篇
DataWorks