码迷,mamicode.com
首页 > 其他好文 > 详细

docker学习之介绍

时间:2019-08-25 20:20:13      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:class   隔离   集中   传统   应用服务   db2   问题   生成   就是   

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"]}

docker学习之介绍

标签:class   隔离   集中   传统   应用服务   db2   问题   生成   就是   

原文地址:https://www.cnblogs.com/KX-Lau/p/11408823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!