认识docker

Posted Beua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了认识docker相关的知识,希望对你有一定的参考价值。

认识docker

一 什么是容器?

官方解释: 容器就是将软件打包成标准化单元,以用于开发,交付部署.

个人理解: 我觉得容器就是一个存放东西的地方,就像书包可以装各种文具、衣柜可以放各种衣服、鞋架可以放各种鞋子一样。我们现在所说的容器存放的东西可能更偏向于应用比如网站、程序甚至是系统环境。

二 什么是docker?

Docker 是世界领先的软件容器平台。Docke最初实现是基于 LXC.

docker优点: 性能好,轻量级,启动快.损耗少.(安全性好)

docker的功能: 它是一个软件打包技术

docker容器的第一个进程(初始命令)必须要夯住,否则容器会退出.

docker主要组件: 镜像,容器,仓库,网络,存储
启动容器必须需要一个镜像,仓库中

2.1为什么要用docker?

a.一致的运行环境

b.启动快

c.隔离性好

d.弹性伸缩,快速扩展

e.迁移方便

f.持续交付和部署

三 容器 vs 虚拟机

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为MB 一般为GB
性能 接近原生 弱于原生
系统支持量 单机支持上千个容器 一般几十个
隔离级别 隔离不同的应用 彻底隔离整个运行环境

四 容器和虚拟化的区别

4.1linux容器技术,容器虚拟化和kvm虚拟化的区别 kvm虚拟化: 需要硬件的支持,需要模拟硬件,可以运行不同的操作系统,启动时间分钟级(开机启动流程)

4.2linux开机启动流程: bios开机硬件自检 根据bios设置的优先启动项boot 网卡 硬盘 u盘 光驱 读取mbr引导 2T UEFI(gpt分区) mbr硬盘分区信息,内核加载路径,
加载内核 启动第一个进程/sbin/init systemd 系统初始化完成 运行服务(nginx,httpd,mysql) 。。。

4.3容器启动流程: 共用宿主机内核: 第一个进程直接启动服务(nginx,httpd,mysql)

4.4容器:共用宿主机内核,轻量级,损耗少,启动快,性能高,只能运行linux系统 虚拟机:需要硬件的支持,需要模拟硬件,需要走开机启动流程,可以运行不同的操作系统

五 Docker基本概念

Docker 包括三个基本概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

技术图片

简单步骤如下:

Client 执行 “docker run ....” 这条命令时——> 它会查看本地有没有这个“镜像”(image),如果没有就向“镜像仓库”拉取到本地 ——> 然后将拉取的“镜像”运行起来就叫“容器”。

不是很恰当举例,仅供个人参考:

5.1镜像(Image)——一个特殊的文件系统

Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。

5.2 容器(Container)——镜像运行时的实体

容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。前面讲过镜像使用的是分层存储,容器也是如此。

??容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。

5.3 仓库(Repository)——集中存放镜像文件的地方

镜像构建完成后,可以很容易的在当前宿主上运行,但是, 如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry就是这样的服务。

??一个 Docker Registry中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。所以说:镜像仓库是Docker用来集中存放镜像文件的地方类似于我们之前常用的代码仓库。

六 Build, Ship, and Run

  • Build(构建镜像) : 镜像就像是集装箱包括文件以及运行环境等等资源。
  • Ship(运输镜像) :主机和仓库间运输,这里的仓库就像是超级码头一样。
  • Run (运行镜像) :运行的镜像就是一个容器,容器就是运行程序的地方。

Docker 运行过程也就是去仓库把镜像拉到本地,然后用一条命令把镜像运行起来变成容器。所以,我们也常常将Docker称为码头工人或码头装卸工,这和Docker的中文翻译搬运工人如出一辙。

以上是关于认识docker的主要内容,如果未能解决你的问题,请参考以下文章

Docker系列:全面认识Docker和基本指令

dockerdocker 常用命令

dockerdocker 常用命令

DockerDocker常用命令

Docker

DockerDocker配置