03 Docker核心技术

2017-03-28  本文已影响74人  被子十三

1. VM Vs. Docker

应用在Docker中跑起来是什么样的?

虚拟机和容器的结构对比

虚拟机下,是硬件→操作系统→Hypervisor→虚拟机操作系统→配置虚拟机依赖环境→安装App
容器时代,硬件→操作系统→Docker Engine→运行所需要的依赖环境→安装App
容器的运行不需要安装虚拟机的操作系统,是比虚拟机更加轻量的虚拟化技术。

Docker和虚拟机对比的详细信息

Docker容器共用一个Kernel,而虚拟机使用自己操作系统的Kernel→虚拟机拥有比Docker更好的隔离性。
Docker有更多的优势:

2. Docker的重要概念:容器、镜像、仓库

3. Docker容器的使用

Docker容器的状态

三种状态:Running、Stopped和Paused,与虚拟机的运行、关机、挂起状态相似。

4. Docker镜像

镜像的生成

当把镜像下载到本地之后,可以使用Docker run的命令,启动一个基于这个镜像的容器。对容器修改之后,可以将其commit回去,生成一个新版本的镜像。

镜像的层级结构

Docker镜像是一种层级结构的文件系统,最上层往往是可写的,存储了已经运行的容器的修改信息当对容器进行kill的时候,修改信息就会被删掉。当容器被commit成镜像的时候,这些修改信息也会保存成新的层级。

镜像的生成除了使用commit之外,还可以使用Dockerfile(更标准、更常用)。这种方式生成出来的镜像更加干净、透明。

5. Docker仓库

Dockerhub和私有仓库

Dockerhub是Docker的官方仓库,存放着各种官方的标准镜像。可以使用pull命令直接从Dockerhub中下载镜像到本地进行使用。

还可以构建自己的镜像仓库,用于存放常用的镜像以及企业自定义的应用镜像。可以从私有仓库中下载、上传镜像。

6. Docker核心技术:Build, Ship, Run

Docker的主要操作

首先利用Dockerfile将组建Build成为一个镜像,然后将镜像上传到企业自定义的镜像仓库中。

当我们需要镜像的时候,可以从任何地方连接到镜像仓库中,将镜像下载到本地,然后一键将其Run起来。
这就是"Build once, run everywhere":一次构建,任何地方都能运行。

7. Docker数据卷

保存Docker数据

容器一旦关闭,修改信息就会丢失,这对于一些有状态的应用来说往往是不可接受的。
可以通过给文件挂载文件目录或者存储来解决,从而可以存储容器运行中的一些数据。这样,当容器崩溃,重启容器的时候,依然可以访问之前容器存储下来的一些数据。

这种方式也可以解决一些主机和容器之间的数据访问。

8. Docker网络

实现容器之间的通信、容器与外部之间的通信。
四种模式:

比较常用的是Birdged模式。主机会生成一个Docker网桥,每个容器可以拥有自己的虚拟网卡,容器网卡通过网桥连接到主机的物理网卡,与外部进行通信。

上一篇下一篇

猜你喜欢

热点阅读