美文网首页
03 Docker核心技术

03 Docker核心技术

作者: 被子十三 | 来源:发表于2017-03-28 20:59 被阅读74次

    1. VM Vs. Docker

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

    虚拟机和容器的结构对比

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

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

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

    • 虚拟机操作系统的存在,占用了更多的计算资源;
    • 空间占用上,虚拟机是GB级,Docker可以小至几MB;
    • 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网络

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

    • Bridged:表示容器可以与主机上的容器,主机上的外部进行通信
    • Host:表示容器只能与主机通信
    • Container:表示容器只能与容器通信
    • None:没有网络连接

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

    相关文章

      网友评论

          本文标题:03 Docker核心技术

          本文链接:https://www.haomeiwen.com/subject/nhrsottx.html