Docker简介

Docker简介

什么是Docker

正所谓Docker的英文本意为“搬运工”,所以在我们的世界里,可以理解为Docker搬运的是装满任意类型的APP的集装箱,开发者可以通过Docker将APP变成一种标准化的、可移动植的、自动管理的组件。它用一种新的方式实现了轻量级的虚拟机,专业术语成为应用容器(Application Container)

Docker的优势:

1、利用率高

·Docker对系统资源的利用率很高,一台主机可以同时运行数千个Docker容器

2、可以快速的交付应用程序

·开发者使用一个标准的image来构建开发容器,开发完成之后,系统管理员就可以使用这种容器来部署代码

·Docker可以快速的创建容器,快速的迭代应用程序,并让整个过程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的

·Docker容器很轻,很快,启动时间堪称秒级,节约了开发、测试、部署的时间

3、更容易部署和扩展

·Docker容器几乎可以在所有的环境中运行,如物理机、虚拟机、云主机、个人PC、服务器等

·Docker容器兼容很多的平台,这样就可以吧一个应用程序从一个平台迁移到另一个

4、效率更高

·Docker容器不需要hypervisor,因为他是内核级的虚拟化

5、更简单的管理

·通常只需要小小的改变就可以替代以往巨型和大量的更新工作

Docker的常用案例:

u  自动打包和部署应用

u  创建轻量、私有的PaaS环境

u  自动化测试和持续集成/部署

u  部署并扩展Web应用、数据库和后端服务器

Docker的体系结构

Docker使用C/S架构,doceker daemon作为server端接受clinet的请求,并处理(创建、运行、分发容器),他们可以运行在一个机器上,也通过socket或者RESTful API通信

Docker守护进程(Docker daemon

Docker守护进程运行在一台主机上,用户并不直接和守护进程进行交互,而是通过Docker客户端间接可其通信

Docker客户端(Docker client

Docker客户端其实是docker的二进制程序,是用户与Docker交互方式,他接收用户指令并且与背后的Docker守护进程通信。

Docker镜像 -Docker images

Docker镜像是Docker容器运行时的只读模板,镜像可以用来创建Docker容器,每一个镜像用一系列的层(layers)组成

Docker仓库 -Docker registeries

Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库,它分为公开仓库(public)和私有仓库(private)两种形式。

Docker容器 -Docker containers

容器是用来运行应用的,一个Docker容器包含可所有某个应用的运行所需的环境,每一个Docker容器都是从Docker镜像创建的,Docker容器可以实现运行、开始、停止、移动和删除。

Docker底层技术

pid namespace

不同用户的进程就是通过pidnamespace隔离开的,且不同 namespace 中可以有相同PID。

net namespace

有了 pid namespace, 每个namespace中的pid能够相互隔离,但是网络端口还是共享host的端口。网络隔离是通过netnamespace实现的,每个net namespace有独立的 network devices, IP addresses, IP routing tables, /proc/net 目录。这样每个container的网络就能隔离开来。LXC在此基础上有5种网络类型,docker默认采用veth的方式将container中的虚拟网卡同host上的一个docker bridge连接在一起。

ipc namespace

container中进程交互还是采用linux常见的进程间交互方法(interprocess communication - IPC), 包括常见的信号量、消息队列和共享内存。然而同VM不同,container 的进程间交互实际上还是host上具有相同pid namespace中的进程间交互,因此需要在IPC资源申请时加入namespace信息 - 每个IPC资源有一个唯一的 32bit ID。

mnt namespace

类似chroot,将一个进程放到一个特定的目录执行。mnt namespace允许不同namespace的进程看到的文件结构不同,这样每个 namespace 中的进程所看到的文件目录就被隔离开了。同chroot不同,每个namespace中的container在/proc/mounts的信息只包含所在namespace的mount point。

uts namespace

UTS("UNIX Time-sharing System") namespace允许每个container拥有独立的hostname和domain name,使其在网络上可以被视作一个独立的节点而非Host上的一个进程。

user namespace

每个container可以有不同的 user 和 group id, 也就是说可以以container内部的用户在container内部执行程序而非Host上的用户。

时间: 2024-08-02 02:49:44

Docker简介的相关文章

【docker】01、docker简介

一.docker简介 Docker 官网:http://www.docker.com Github Docker 源码:https://github.com/docker/docker 1.docker是什么 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 i

Docker 简介及安装

Docker简介: 什么是Docker?将应用程序自动部署到容器 go语言开源引擎  Github地址:https://github.com/docker/docker 2013年初 dotCloud 基于Apache2.0 开源授权协议发行 Docker的目标和特点 提供简单轻量的建模方式 职责的逻辑分离 快速高效的开发生命周期 鼓励使用面向服务的架构 Docker使用场景: 1 使用Docker容器开发,测试,部署服务 2 创建隔离的运行环境 3 搭建测试环境 4 构建多用户的平台既服务PA

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

一.Docker简介 1.Docker是一个能够把开发的应用程序自动部署到容器的开源引擎.Docker的特别之处:Docker在虚拟化的容器执行环境中增加了一个应用程序部署引擎.该引擎的目标就是提供一个轻量.快速的环境,能够运行开发者的程序,并方便高效地将程序从开发者的笔记本部署到测试环境,然后再部署到生产环境. 2.Docker提供一个简单.轻量的建模方式:Docker依赖于"写时复制"模型(写时复制技术:内核只为新生成的子进程创建虚拟空间结构,它们来复制于父进程的虚拟究竟结构,但是

Docker简介(一)

Docker简介 Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托管在 GitHub 上, 基于Go语言并遵从Apache2.0协议开源. Docker是通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等.由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率. 三大理念:Build(构建).Ship(运

1 docker简介和安装

docker简介 简介 2013年诞生,容器虚拟化,在系统中实际上是一个进程. 使用go语言开发,基于apache 2.0协议 redhat6.5以后的版本支持docker 特点 容器虚拟化,轻量级(进程),启动速度极快(不用手动分配CPU.内存资源) 对硬件资源的利用率更高 一次创建和配置后,可以在任意地方运行和使用,让运维人员或者开发人员快速部署和交付资源,大大提高了工作效率 内核级别的虚拟化,不需要额外的hypervisor 迁移十分方便 VM和docker的比较 基本概念 镜像:是一个只

Docker简介以及使用领域和架构

Docker 简介 1.Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. 2.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. 3.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低. Docker 架构 1.Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容

Docker简介与安装(一)

Docker简介 Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托管在 GitHub 上, 基于Go语言并遵从Apache2.0协议开源. Docker是通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等.由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率. 三大理念:Build(构建).Ship(运

Docker快速入门——Docker简介

Docker快速入门--Docker简介 一.Docker简介 1.Docker简介 Docker是Docker Inc公司开源的一项基于Ubuntu LXC技术构建的应用容器引擎,源代码托管在GitHub上,完全基于go语言开发并遵守Apache2.0协议开源.Docker可以让开发者打包应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux版本机器上,也可以实现虚拟化.Docker容器完全使用沙箱机制,容器相互之间不会有任何接口,并且容器性能开销极低.Docker最初是在

Docker简介及基本应用

Docker 前言 1.虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源.这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制.一般所指的虚拟化资源包括计算能力和资料存储. 在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬