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 容器与对象

      

docker:docker的基本了解的更多相关文章

  1. [Docker] docker 基础学习笔记3(共6篇)

    首先我们安装好了ssh server之后, 我们需要将这个容器commit,然后启动这个被commit的image. 启动方式: docker run -d -p 2222:22 /usr/sbin/ ...

  2. [Docker] docker 基础学习笔记1(共6篇)

    巩固一下yum: yum本身是centos自带的软件,可以删掉然后再重新安装. yum本身可以配置yum源,网络的,本地的都可以.之后安装docker需要配置一个扩展源.   从163的网址里边下载好 ...

  3. Docker - Docker国内镜像的配置及使用

    Docker国内镜像 DaoCloud - Docker加速器 阿里云 - 开发者平台 微镜像 - 希云cSphere 镜像广场 - 时速云 灵雀云 网易蜂巢 阿里云的Docker加速器 阿里云 - ...

  4. Docker - Docker基础命令及使用

    Docker Docker - 官网 Docker - Hub GitHub - Docker Docker中文社区 Docker基础命令 Docker 查看帮助信息:docker --help 查看 ...

  5. Docker - Docker基础讲义

    Docker Docker - 官网 Docker - Hub GitHub - Docker Docker中文社区 虚拟化技术 硬件级虚拟化(hardware-level-virtualizatio ...

  6. 菜鸟系列docker——docker镜像下(5)

    1. docker镜像构建 该章节主要介绍2种构建docker镜像的方式.当然,当前基本上需要的基础镜像都有,直接使用即可.例如数据库.中间件之类的,只需要拿来使用即可,但是依然存在需要开发者构建镜像 ...

  7. 菜鸟系列docker——docker镜像中(4)

    docker镜像命令 该章节主要介绍docker image相关命令实践操作,建议都一起跑一边 1. docker images 列举本机docker镜像 [centos@jiliguo docker ...

  8. 菜鸟系列docker——docker镜像上(3)

    1. 镜像image 镜像和容器的关系就和安装包和程序的关系一样,有了镜像才可以启动容器,容器是镜像的一个运行实例. 1.1 镜像的结构 通过第二节仓库,可能很多看官已经查看到镜像是分层的,接下来将对 ...

  9. Docker - Docker与Vagrant的区别

    Docker Docker - HomePage Wiki - Docker Docker简介 Overview Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协 ...

  10. [转帖]Docker里运行Docker docker in docker(dind)

    Docker里运行Docker docker in docker(dind) http://www.wantchalk.com/c/devops/docker/2017/05/24/docker-in ...

随机推荐

  1. 牛客多校第一场 Random Point in Triangle

    https://ac.nowcoder.com/acm/contest/881/F 打表代码: #include<bits/stdc++.h> using namespace std; ] ...

  2. [CSP-S模拟测试]:数字(数学+高精度)

    题目描述 很简单,给出正整数$n$,求出$n!$在十进制表示下的从最末非零位开始的总共$k$位. 输入格式 第一行一个正整数$T$,表示有$T$组数据接下来$T$行,每行两个正整数$n$和$k$. 输 ...

  3. JavaScript原型和闭包学习笔记

    在这里先和大家推荐一个博客,这博客的<深入理解javascript原型和闭包(完结)>系列,看了比较多的视频和书本,这个博客讲得很耐人寻味. 深入理解javascript原型和闭包(完结) ...

  4. 用 margin 还是用 padding ?

    边界(margin):元素周围生成额外的空白区."空白区"通常是指其他元素不能出现且父元素背景可见的区域. 补白(padding):补白位于元素框的边界与内容区之间.很自然,用于影 ...

  5. js里面常用的正则表达式

    在工作中经常碰到关于表单的验证,一般采取正则表达是比较简洁,代码量少,但是却经常忘记一些正则的用法.下面记录工作中经常用到的正则表达式. * 代表0次或者多次   +代表1次或者多次  ?代表0次或者 ...

  6. JavaBean属性和成员变量的区别和联系

    JavaBeans是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中.特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性.名称中的“Bean”是用于 ...

  7. SQL element_at函数

    库里有类似josn形式的字符串数据attr{"a":"123","b":"234"."c":&quo ...

  8. Vagrant 手册之 Vagrantfile - 最低版本

    原文地址 可以在 Vagrantfile 中指定一组 Vagrant 的版本,以强制人们使用带有 Vagrantfile 的特定版本的 Vagrant.这可以帮助解决使用带有 Vagrantfile ...

  9. php脚本超时时间设置

    设置PHP脚本执行超时的时间有下面这样一些方法:php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定,倘若你有一个需要颇多时间 ...

  10. (转)Linux下编译安装log4cxx

    Linux下编译安装log4cxx 一个项目的服务器端在Linux平台下,用到了开源日志库log4cxx,这个库是apache项目的一个子库.功能很不错.下面记录下它的编译和安装过程. log4cxx ...