• Docker简介


    1.Docker的历史

    Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)。

    Docker 自开源后受到广泛的关注和讨论,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。

    2.什么是Docker

    Docker 是一个开源的应用容器引擎基于Go语言,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题

    Docker官网地址: https://www.docker.com

    官方文档地址: https://docs.docker.com

    3.Docker与虚拟机比较  Docker是基于LXC(Linux  Container既Linux容器) 技术构建的容器引擎

    作为一种轻量级的虚拟化方式,Docker在运行应用上跟传统的虚拟机方式相比具有显著优势:
      Docker容器很快,启动和停止可以在秒级实现,这相比传统的虚拟机方式要快得多。
      Docker容器对系统资源需求很少,一台主机上可以同时运行数千个Docker容器。
      Docker通过类似Git的操作来方便用户获取、分发和更新应用镜像,指令简明,学习成本较低。
      Docker通过Dockerfile配置文件来支持灵活的自动化创建和部署机制,提高工作效率。

    4.Docker的应用场景

      Web 应用的自动化打包和发布。
      自动化测试和持续集成、发布。
      在服务型环境中部署和调整数据库或其他的后台应用。
      从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

    5.Docker的组成

    Docker 使用客户端-服务器 (C/S) 架构模式,主要有两个概念:

    Docker daemon: 运行在宿主机上,Docker守护进程,用户通过Docker client(Docker命令)与Docker daemon交互
    Docker client: Docker 命令行工具,是用户使用Docker的主要方式,Docker client与Docker daemon通信并将结果返回给用户,Docker client也可以通过socket或者RESTful api访问远程的Docker daemon


    Docker的三个主要概念:

    Docker image:

    镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建container,一个镜像可以运行多个container;镜像可以通过Dockerfile创建,也可以从Docker registry上下载。


    Docker container:

    容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。


    Docker registry:

    镜像就相当于打包好的版本,镜像启动之后运行在容器中,Docker仓库就是装存储镜像的地方。

    6.Docker架构图和运行原理图

    架构图

    通过Dockerfile文件构建镜像 build

    通过客户端从Docker仓库即Registry 下载镜像 pull

    运行镜像成为容器 run

    以上所有操作都是通过Docker Daemon 完成   Docker Daemon即Docker守护进程 是Docker的核心

    运行原理图

     

    古人学问无遗力,少壮工夫老始成。 纸上得来终觉浅,绝知此事要躬行。
  • 相关阅读:
    设计模式之笔记--工厂方法模式(Factory Method)
    dmesg命令
    jumpserver2.3.0社区开源版
    container偶尔宕掉问题的解决记录
    sshd服务的白名单和黑名单
    /proc/sysrq-trigger文件
    ansible定义主机清单
    简述Etcd、Lvs、HAProxy
    ES6语法 let、const、for...of循环、展开运算符、ES6箭头函数、箭头函数和this、模板字面量、解构、对象字面量简写法、默认参数函数、super 和 extends、Object.assign()
    axios 将post请求时把对象obj数据转为formdata
  • 原文地址:https://www.cnblogs.com/wf-zhang/p/14549610.html
Copyright © 2020-2023  润新知