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

简介:

一、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日志并进行多维度分析。
目录
相关文章
|
1月前
|
Java Go 开发者
Docker容器技术简介及其与Go语言的结合点
【2月更文挑战第23天】本文首先概述了Docker容器技术的核心概念和优势,接着探讨了Go语言与Docker容器技术的结合点。通过阐述Docker的轻量级、可移植性和版本控制等特性,以及Go语言在容器化应用中的优势,本文旨在说明两者结合能够实现更高效、灵活的应用开发和部署。
|
5月前
|
Linux Docker 索引
CentOS7安装Docker遇到的问题笔记
CentOS7安装Docker遇到的问题笔记
126 0
|
6月前
|
Docker 容器
01Docker简介
01Docker简介
23 0
|
25天前
|
监控 数据可视化 虚拟化
Docker容器常用命令笔记分享
Docker容器常用命令笔记分享
50 2
|
1月前
|
Kubernetes Cloud Native 虚拟化
【docker】—— Docker 简介
【docker】—— Docker 简介
|
3月前
|
前端开发 JavaScript 应用服务中间件
WEB前端有必要学会docker吗?0基础-45分钟带你学会(包含视频笔记案例源代码)
WEB前端有必要学会docker吗?0基础-45分钟带你学会(包含视频笔记案例源代码)
30 0
|
4月前
|
消息中间件 网络协议 Kafka
docker安装zk和kafka实战笔记
docker安装zk和kafka实战笔记
docker安装zk和kafka实战笔记
|
4月前
|
并行计算 异构计算 Python
docker19 配置容器 cuda10.2笔记
docker19 配置容器 cuda10.2笔记
67 0
|
5月前
|
jenkins 持续交付 数据安全/隐私保护
Jenkins简介及Docker Compose部署
Jenkins是一个开源的自动化服务器,用于自动化构建、测试和部署软件项目。它提供了丰富的插件生态系统,支持各种编程语言和工具,使得软件开发流程更加高效和可靠。在本文中,我们将介绍Jenkins的基本概念,并展示如何使用Docker Compose轻松部署Jenkins服务。
184 3
Jenkins简介及Docker Compose部署
|
5月前
|
Linux 开发工具 git
淘东电商项目(07) -GitLab简介以及Docker部署
淘东电商项目(07) -GitLab简介以及Docker部署
69 0