zoukankan      html  css  js  c++  java
  • Docker---介绍

    docker是什么?

    ​docker是linux容器的一种封装,提供简单易用的容器使用接口,是最流行的linux容器解决方案。docker的接口相当简单,用户可以方便地创建和销毁容器。docker将应用程序与程序的依赖,打包在一个文件里面,运行这个文件就会生成一个虚拟容器。程序运行在虚拟容器里面,如同在真实物理机上运行一样,可以解决环境配置的难题。

    ​linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,在正常的进程外面套一个保护层,对于容器里面的进程来说,它接触到的资源都是虚拟的,从而实现和底层系统的隔离。

    1. 启动快

    容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度快很多。

    1. 资源占用少

    容器只占用需要的资源,不占用那些没有用的资源;而虚拟机是完整的操作系统,不可避免要占用所有资源。此外,多个容器可以共享资源,虚拟机都是独享资源。

    1. 体积小

    容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件小很多。

    综上所说,容器可以理解为轻量级的虚拟机,能够提供虚拟化的环境,成本开销小得多。

    docker的优势

    • 更高效的利用系统资源

    容器 不需要进行硬件虚拟以及运行完整的操作系统等额外开销,所以无论是应用执行速度、内存损耗或者文件存储速度,都比传统虚拟技术更高效。

    • 更快速的启动时间

    传统的虚拟机技术启动应用服务往往需要数分钟,而docker容器应用直接运行于宿主机内核,不需要启动完整的操作系统,可以做到秒级、甚至毫秒级的启动时间,大大节约了开发、测试和部署的时间。

    • 一致的运行环境

    开发过程中一个常见的问题是环境一致性问题。docker镜像提供了除内核外完整的运行环境,确保了应用运行环境的一致性。

    • 持续交付和部署

    使用docker可以通过定制应用镜像来实现持续继承、持续交付、部署。开发人员可以通过dockerfile来进行镜像构建,并结合、持续继承系统进行继承测试;而运维人员可以直接在生产环境中快速部署该镜像,甚至结合持续部署系统进行自动部署。

    • 更轻松的迁移

    docker确保了执行环境的一致性,故应用的迁移更加容易。无论是在物理机、虚拟机、公有云、私有云,甚至是笔记本,运行结果都是一致的。因此,用户可以很轻易的在一个平台上运行应用,迁移到另一个平台上,不用担心运行环境的变化导致应用无法正常运行。

    docker的三大概念

    • 镜像(image):卖的镜像光盘,可以理解为python的类。docker镜像就是一个只读的模板,用来创建docker容器。镜像是一个虚拟的概念,不是一个完整的打包文件,镜像采用分层储存的架构,由一组文件组成,或者多组文件系统联合组成。
    • 容器(container):基于镜像运行出的容器实例,可以理解为python类的实例化。镜像是静态的定义,容器是镜像运行时的实体,可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。容器可以看做是一个简易版的Linux环境和运行在其中的应用程序。
    • 仓库(repository):集中存放镜像文件的场所。每个仓库包含多个镜像,每个镜像有不同的标签。仓库分为公开仓库和私有仓库两种形式,最大的公开仓库是docker hub,存放了数量庞大的镜像。国内公开仓库包含docker pool等,可以提供大陆用户稳定快速的访问。创建了自己的镜像之后可以使用push命令上传到仓库,在另外一台机器上使用这个镜像时,只需要 从仓库上pull下来。docker仓库的概念跟Git类似。

    docker的整个生命周期就是这三个概念。

    下载安装docker

    1. 下载docker

      yum install docker -y
      
    2. 配置docker镜像加速器

      curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
      

      加速器修改的是 /etc/docker/daemon.json文件。

    3. 重启docker服务

      systemctl restart docker
      

      注意:重启之前需要修改一个配置文件。

      cat /etc/docker/daemon.json
      # 去掉{}里面的逗号就行
      	{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}
      
    作者:凯旋.Lau
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    殷浩详解DDD:如何避免写流水账代码?
    如何从 0 到 1 开发 PyFlink API 作业
    探秘RocketMQ源码——Series1:Producer视角看事务消息
    教父郭盛华透露:PHP编程语言中多个代码执行缺陷
    互联网用户仍然容易受到黑客社会工程学攻击
    揭秘郭盛华在世界的排名,才华与颜值并存的男神
    什么是逆向工程?黑客是如何构建可利用的漏洞?
    人工智能时代,计算机网络主要面临哪些安全威胁?
    【2020-10-01】国庆堵车不堵心
    【2020-09-30】走起来慢,但实际很快
  • 原文地址:https://www.cnblogs.com/KX-Lau/p/11408823.html
Copyright © 2011-2022 走看看