docker学习之介绍

docker是什么?

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

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

  1. 启动快

容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。因此,启动容器至关于启动本机的一个进程,而不是启动一个操做系统,速度快不少。docker

  1. 资源占用少

容器只占用须要的资源,不占用那些没有用的资源;而虚拟机是完整的操做系统,不可避免要占用全部资源。此外,多个容器能够共享资源,虚拟机都是独享资源。json

  1. 体积小

容器只要包含用到的组件便可,而虚拟机是整个操做系统的打包,因此容器文件比虚拟机文件小不少。安全

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

docker的优点

  • 更高效的利用系统资源

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

  • 更快速的启动时间

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

  • 一致的运行环境

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

  • 持续交付和部署

使用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"]}
相关文章
相关标签/搜索