zoukankan      html  css  js  c++  java
  • docker:docker的基本了解

    1.什么是docker

      简单的理解:docker相当于vmvare,容器相当于多个虚拟机,vmvare上可以运行ubantu16.04的虚拟机,也可以运行centos虚拟机,还可以运行redhat虚拟机。

      容器:完全隔离的环境,例如vmvare上两个虚拟机是相互隔离的。每一个虚拟机都得安装操作系统,但是容器不需要安装操作系统。容器比较轻量。如果新电脑上需要运行程序,那么就要将原来的环境依赖都复制一份,例如将整个虚拟机复制一份,可以实现。但是要是程序运行在服务器上, 从本地往服务器上复制虚拟机比较麻烦,那么只能在服务器上重新下载需要的环境和相关的依赖包等,比较费时费力。

      但是:使用docker可以将容器压缩上传到服务器,服务器上通过docker解压缩容器,就可以直接跑,这样就提高了效率。等于就是讲这个环境和依赖都拷贝到服务器上。

     

    2.docker的整体结构

    3.docker的底层技术

    4.docker的版本

      ce版本:社区版 安全性低 

      ee版本:企业版  安全性高

    5.docker的安装

    6.docker的版本查看

      

    7.docker的加速器设置

      加速器相当于代理,加快下载官方仓库镜像的速度。

      阿里云搜索docker---获取加速器地址---/etc/docker/deamon.json文件中添加加速器地址

    8.docker的镜像

      docker镜像是docker执行的文件,包含了运行所需要的代码和依赖库和环境和配置文件等。

      镜像---创建---容器(一个或者多个)

      镜像搜索

      docker search ubantu 在docker的官方仓库搜索ubantu的镜像

      

      镜像查看(本地)

      docker images/ docker image ls

      

      IMAGE ID :镜像指纹,不同的镜像指纹不同,唯一性。

      TAG:版本号

      CREATED:创建时间

      SIZE:镜像大小

      镜像下载

      docker pull centos 默认下载最新的镜像

      

      有时候:会出现需要登录docker官网的情况

        

      原因是:因为仓库中没有找到对应名字的镜像。

      

      镜像删除

      docker rmi hello-world

      

      docker ps -a 查看所有容器

      

      docker rm e8906e86e57 删除指定id的容器

      

      删除了容器中的镜像,在执行镜像删除,就能顺利的删除镜像了。也可以用docker rmi -f hello-world 强制性删除带有容器的镜像

      删除进行还可以用IMAGE ID 进行删除,语法是 docker rmi imge id 

      镜像保存

      docker save IMAGE  将本地的一个或多个镜像打包成tar文件(输出到stdout)

      docker save 镜像名称 将本地的一个或多个镜像打包成tar文件(输出到stdout)

      docker save xx/ubantu > ubantu.tar

      将ubantu镜像导到桌面

      

      镜像导入

      docker load -i xx.tar  指定文件进行加载导入

      删除本地原有的xx/ubantu,将桌面的xx/ubantu导入到docker镜像中

      

      镜像重命名

      docker tag disuzf/ubantu demo/ubantu:18.04   重命名是增加了一个引用,变量名改变了而已

      

      镜像详细信息

      docker inspect disuzf/ubantu 

      

      镜像的历史信息

      docker history xxx/ubantu

    9.docker 容器

      容器:轻量级,可移植,将应用程序进行打包的技术,使应用程序在几乎任何地方以相同的方式运行

      Dokcer将镜像文件运行起来,产生的对象就是容器,容器相当于是镜像运行起来的一个实例。且容器具有生命周期

      容器和虚拟机的相似点:

        容器的生命周期:类似于虚拟机的(创建、运行、暂停、关闭)

        容器和虚拟机都可以安装各种应用:如redis、mysql、nginx等,也就是说,在容器中的操作,如同在虚拟机(操作系统)中一样。

        同虚拟机一样,容器创建后,会存储在宿主机上:linux上位于/var/lib/docker/containers下

      

      容器与虚拟机的不同点:

        容器不是虚拟机,只是有部分相似点而已。

        虚拟机的创建、启动、关闭都是位于一个完整的操作系统,一个虚拟机就是一个完整的操作系统,而容器数运行在宿主机(就是docker)的内核上,其本质就是一系列进程的集合

         容器是轻量级的,虚拟机是重量级的,容器不需要额外的资源来管理,虚拟机需要消耗更多的资源,其次创建,启动,关闭容器就如同创建,启动,关闭进程一样的方便,但是关闭一个虚拟机(操作系统)就没有那么方便。

        指定硬件上面可以运行更多数量的容器,但是运行多个虚拟机,例如电脑上运行5个ubantu,会特别卡,因为每个ubantu都给分配内存等资源,运行5个ubantu的容器,毫无压力。docker可以直接运行正虚拟机上。

       

        一个docker可以运行多个容器,就行运行多个进程一样,但是一个centos必须获得足够的资源才能运行,例如内存,硬盘、网络等。多个centos一起运行,对硬件的要求很高。  

      容器的生命周期

      

        容器的创建

          docker create 容器的名称

          docker create xx/ubantu

          

         容器的删除

          docker rm testubantu  

        

        容器的启动

          docker create --name testubantu xxx/ubantu

          docker start testubantu

          docker start c4415494409e  以id的形式开启容器,显示的状态为运行状态,但是以name的形式运行,显示的是关闭状态

         容器的运行 

          docker run disuzf/ubantu

          docker run -dti disuzf/ubantu

        停止运行的容器

           docker stop c4415494409e

           docker pause c4415494409e  暂停形式的停止

           docker unpause c4415494409e  继续运行

     

         链接正在运行的容器

          docker attach ID  

      

           docker exec ID 在容器内容执行新的命令

          

     10 容器与对象

          

  • 相关阅读:
    RabbitMQ详解
    嵌入式开发学习(10)<汇编写启动代码之设置栈、调用c语言、开关看门狗和开关iCache>
    嵌入式开发学习(8)<一步一步点亮LED灯>
    gcc编译神器之makefile
    嵌入式开发学习(6)<S5PV210开发板刷系统那点破事儿之二>
    嵌入式开发学习(5)<S5PV210开发板刷系统那点破事儿之一>
    嵌入式开发学习(4)<ARM汇编指令集详解>
    嵌入式开发学习(3)<ARM汇编指令集语法>
    嵌入式开发学习(2)<S5PV210启动过程详解>
    嵌入式开发学习(1)<ARM体系结构>
  • 原文地址:https://www.cnblogs.com/meloncodezhang/p/11443165.html
Copyright © 2011-2022 走看看