1080  
查询码:00000036
1 Docker介绍
作者: wyasw 于 2020年03月29日 发布在分类 / Docker / docker基础 下,并于 2020年03月29日 编辑
docker

Docker介绍

1.1 什么是docker

Docker是基于go语言实现的开源容器项目。

官网网站为docker.com.

Docker项目已加入linux基金会,并遵循Apache2.0协议,全部开源代码均在https://githup.com/docker项目仓库中进行维护。

容器技术:容器有效的将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与虚拟化相比,这样既不需要指令级模拟,也不需要及时编译。容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制。此外,也避免了准虚拟化(para-virtualization)和系统调用替换仲的复杂性。

简单的讲,读者可以将docker容器理解为一种轻量级的沙盒(sandbox),每个容器运行着一个应用,不同的容器相互隔离,容器之间也可以通过网络互相通信。容器的创建停止十分快速,几乎跟创建和终止原生应用一致;另外,容器自身对系统资源的额外需求也十分有限,远远低于传统虚拟机,很多时候,甚至直接把容器当作应用本身也没有任何问题。

Docker以及其它容器技术都属于操作系统虚拟化这个范畴。传统方式是在硬件层次实现虚拟化,需要有额外的虚拟机 管理应用和虚拟机操作系统层。Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,因此更加轻量级。

1.2 Docker核心概念:镜像、容器、仓库

1docker镜像:docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。镜像是创建docker容器的基础。通过版本管理和增量的文件系统,docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用。

2docker容器:docker容器类似一个轻量级的沙箱,docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例。它可以启动、开始、停止、删除,而这些容器彼此相互隔离、互不可见的。可以把容器看做一个简易版的linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等)以及运行在其中的应用程序打包而成的盒子。#注意:镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。

3docker仓库:docker仓库类似于代码仓库,是docker集中存放镜像文件的场所。Docker仓库可以分为公开仓库(public)和私有仓库(private)两种形式。目前,最大的公共仓库是官方提供的docker hub,其中存放着数量庞大的镜像供用户下载。当然,用户如果不希望公开分享自己的镜像文件,docker也支持用户在本地网络内创建一个只能自己访问的私有仓库。当用户创建了自己的镜像之后就可以使用push命令将它上传到指定的共有或者私有仓库。这样用户下次在另外一台机器上使用该镜像时,只需要将其从仓库上pull下来就可以了。

1.3 docker引擎

Docker引擎是使用docker容器的核心组件,可以再主流的操作系统和云平台上使用,包括linux操作系统,maxOSwindows操作系统,以及IBM、亚马逊、微软等知名平台。

Docker引擎:包括支持再桌面系统或云平台安装docker,以及为企业提供简单安全弹性的容器集群编排和管理;

DockerHub:官方提供的云托管服务,可以提供公有或私有的镜像仓库。

DockerCloud:官方提供的容器云服务,可以完成容器的部署与管理,可以完整地支持容器化项目,还有CICD功能。

Docker引擎目前分为两个版本;社区版本和企业版本。社区版本每个月会发布一次尝鲜(Edge)版本,每个季度(36912月)会发行一次稳定(stable)版本。版本号命名格式为“年份.月份”

1、使用最广泛的开源容器引擎

2、一种操作系统级的虚拟化技术

3、依赖于Linux内核特性:NamespaceCgroups

4、一个简单的应用程序打包工具

1.4 Docker在开发和运维中的优势

1、更快速的交付和部署

2、更高效的资源利用

3、更轻松的迁移和扩展

4、更简单的更新管理

1.5 Docker基本组成

1、Docker Client:客户端

2、Docker Daemon:守护进程

3、Docker Images:镜像

4、Docker Container:容器

5、Docker Registry:镜像仓库

粘贴图片


1.6 容器vs虚拟机

Container

VM

启动速度

妙级

分钟级

运行性能

接近原生

5% 左右损失

磁盘占用

MB

GB

数量

成百上千

一般几十台

隔离性

进程级别

系统级(更彻底)

操作系统

只支持 Linux

几乎所有

封装程度

只打包项目代码和依赖关系,共享诉诸主机内核

完整的操作系统

1.7 Docker应用场景

1、应用程序打包和发布

2、应用程序隔离

3、持续集成

4、部署微服务

5、快速搭建测试环境

6、提供PaaS产品(平台即服务)


 最新评论
当前评论数1  查看更多评论


 推荐知识

 历史版本

修改日期 修改人 备注
2020-03-29 02:35:46[当前版本] 系统管理员 创建版本

 附件

附件类型

PNGPNG

预览图

文艺知识分享平台 -V 4.9.5 -wcp
京公网安备100012199188号 京ICP备2021030911号