Docker(1)-基础

 

Docker介绍:

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

  镜像:Docker中的镜像可以把它看做一个系统镜像,比如windows7.iso或centos6.iso,每个镜像有不同的标签。

  容器:  Docker中的容器是使用镜像为蓝本创建的,就好比windows7.iso(镜像) 安装到了一台笔记本上,那么运行了windows7.iso的机器就是一个容器,然后就可以在这个容器上进行软件安装等操作了。我们也可以把这个容器上的windows7.iso重新打包成镜像。然后再用这个镜像重新打包成容器。

  仓库: 是集中存放镜像文件的场所,我们可以把自己的容器打包成镜像然后push到仓库中

为什么要使用Docker:

  1.更高效的利用系统资源
     由于容器不需要进行硬件虚拟及运行完整操作系统等额外开销,Docker对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统的虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。

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

   3.一致的运行环境
    开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些BUG并未在开发过程中被发现。而Docker的镜像提供了除了内核外完整的运行时环境,确保了应用运行环境得一致性,从而不会再出现“这段代码在我机器上没问题”这类问题。

     4.持续交付和部署
    对开发和运维人员来说,最希望的就是一次性创建或配置,可以在任意地方正常运行。
    使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过DockerFile来进行镜像构建,并结合 持续集成系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署系统进行自动部署。
    而使用DockerFile使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。

   5.更轻松的迁移

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

   6.更轻松的维护和扩展

    Docker使应用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变的非常简单。此外,Docker团队同各个开源项目团队一起维护了一大批高质量的官方镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。

 

Docker命令:

    1.拉取镜像:

        docker  pull  centos:centos6       

        : image_name:tag 镜像名:标签定位一个镜像,从中央仓库拉取一个标签为centos6的centos镜像

    2.查看镜像列表:

        docker  images  //可以查看本地拉取下来的镜像

        如下:

        REPOSITORY       TAG       IMAGE ID         CREATED       SIZE

        centos          centos6     6a77ab6655b9       8 weeks ago       194.6 MB

    3.上传镜像

        docker   push  

    4.创建容器:

        docker create <image-id>

        docker create 命令为指定的镜像(image)添加了一个可读写层,构成了一个新的容器。注意,这个容器并没有运行。

        docker create 命令提供了许多参数选项可以指定名字,硬件资源,网络配置等等。

    5.启动容器

        docker start <container-id>

    6.进入容器

        docker exec <container-id>

    7.停止容器

        docker stop <container-id>

    8.删除容器

        docker rm <container-id>

    9.运行容器

        docker run <image-id>

        docker run就是docker create和docker start两个命令的组合,支持参数也是一致的,如果指定容器
      名字是,容器已经存在会报错,

    10.查看容器列表

        docker ps //查看正在运行的容器列表

        docker ps -a //查看所有容器列表

    11.删除镜像

        docker rmi <image-id>

    12.提交容器

          docker  commit  <container-id> 

        将容器的可读写层转换为一个只读层,这样就把一个容器转换成了不可变的镜像。

    13.镜像保存

        docker  save  <container-id>

        

      

  

  

 

猜你喜欢

转载自www.cnblogs.com/thesongtao/p/10622155.html