前言:

以前学习docker 都是零零碎碎的,只知道用,有些莫名其妙的报错自己也没有思路去解决,所以基于一本专业的介绍docker的书籍,重新开启学习,该博客就记录下我自己的学习过程吧。

1.docker是什么:
与虚拟机的区别引用一篇博客:
Docker其实也是类似于虚拟机的。至少在作用目的上是一致的。用一个“经典”的例子来作对比就是:将部署应用比作鸣人来搓螺旋丸,虚拟机类似于鸣人的影分身之术,每个分身(虚拟机)都拥有同样的身体(OS,环境),但是在查克拉(CPU)的使用上,每个分身的查克拉会均分自真身(真正的主机),这个行为也可以称之为CPU虚拟化,但是这里浪费了分身,用分身来搓一个小螺旋丸,太浪费了……而对于docker来说,就像是九尾模式的鸣人,我直接利用我体内的九尾查克拉(硬件资源),分成九只爪子,每只爪子相互独立,也可以搓小螺旋丸……
2.docker 3大核心:镜像,仓库,容器
2.1
镜像就是一个一个类似于虚拟机的镜像,可以理解为一个面向Docker 引擎的只读模块包含了文件系统,如包含了ubuntu,就是ubuntu镜像,如包含了Apache 就是Apache镜像,
2.2
容器:容器是一个镜像的实例,利用容器来隔离有点像沙箱,如果说镜像就是一个特定的文件系统,那么容器就是一个完整的简易的操作系统包含文件系统,进程,用户空间,和网络空间,以及各种程序盒子等,书上说容器是镜像的可写层,我是这样理解的,镜像是不变的,当成是一个不变的类,然后有很多很多的实例,比如一个ubuntu镜像可以生成各种各样的程序容器。
2.3
仓库:
仓库好理解,就是用来放镜像的地方,分为本地仓库(私有仓库)和云仓库(公开仓库),有各种各样的仓库,每个仓库通常是放一类镜像,该类镜像用tag来区分,而最大的稳定国内访问的仓库就是Docker Hub。
2.pull 镜像,拉取容,pash上传到仓库
docker images

各字段解释:仓库TAG标识符,IMAGE ID 镜像唯一标识符,创建时间,仓库大小
docker inspect 镜像详细信息
 
docker pull ubuntu
进入镜像:
docker -t -i IMAGE ID /bin/bash 镜像id 前几个字母可代替完整的id
 

2.搜索镜像:
docker search TERM
参数: --automated=false 重要,官方还是自建
--no-trunc=false 输出信息不截断
--stars=0 输出好评镜像
3.删除镜像:
docker rm 容器id
docker rmi image(标签或者ID)
docker rmi -f id 强制删除,建议不用有遗留问题。
解决docker 镜像多引用问题导致镜像删不掉问题:
如图
 
 

 

解决办法:

先docker rm 容器id
在docker rmi 镜像id 就可以了
删除错误有错误提示的按照错误去删除。注意运行中的容器是删不掉的,先stop了。
4.创建镜像:
3种方法:
基于已有的镜像去创建,
基于本地模板导入,
基于Dockerfile创建
docker commit 命令: 其命令格式为
docker commit [option]CONTALINER [REPOSITORY[:TAG]]
-a: --author=" "作者信息
-m,--message=" " 提交消息
-p, --pause =true 提交时暂停容器运行
1.基于现有的仓库去创建:
1.1.修改镜像:
 

制作镜像:如图test镜像制作成功。
docker commit -m "Added a new file" -a "lidaye" 47b19964fb50 test
 

2.载入本地模板:
命令docker import - 名字
模板下载一般用openVZ 下载地址:http://openvz.org/Download/templates/precreated
下载为一个tar压缩包:ubuntu xxx.tar.gz
命令:sudo cat ubuntu xxx.tar.gz | docker import -ubuntu
3存出和载入镜像:
docker save和 docker load命令来存出和载入镜像
在本地环境和docker本地仓库的联系。
3.dockerfile 有专门章节。
 

初识docker-镜像的更多相关文章

  1. Docker 学习应用篇之一: 初识Docker

    Docker 自从2013年以来就非常的火热,无论是从github上的代码活跃度,还是Redhat在RHE6.5中集成对Docker的支持,等等.第一次接触Docker,还是老师给我们介绍的. 1.初 ...

  2. MySQL、MongoDB、Redis数据库Docker镜像制作

    MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...

  3. 理解Docker(2):Docker 镜像

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  4. 如何合并两个Docker 镜像

    http://www.open-open.com/lib/view/open1437746544709.html 在你的机器上使用docker pull来从Docker Hub下载镜像. docker ...

  5. Docker镜像的管理和创建

    1. Docker镜像和Docker容器:      Docker镜像实际上是一系列的文件系统,通常的Linux系统一般是两层文件系统,bootfs和rootfs,bootfs就是bootloader ...

  6. docker 源码分析 四(基于1.8.2版本),Docker镜像的获取和存储

    前段时间一直忙些其他事情,docker源码分析的事情耽搁了,今天接着写,上一章了解了docker client 和 docker daemon(会启动一个http server)是C/S的结构,cli ...

  7. docker使用阿里云Docker镜像库加速

    官方镜像下载实在是慢,于是开通了阿里云开发者帐号, 官方帮助 阿里云Docker镜像库 阿里云容器Hub服务:http://dev.aliyun.com/search.html 来自云端的容器Hub服 ...

  8. 第四章 使用Docker镜像和仓库(二)

    第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...

  9. 第四章 使用Docker镜像和仓库

    第4章 使用Docker镜像和仓库 回顾: 回顾如何使用 docker run 创建最基本的容器 $sudo docker run -i -t --name another_container_mum ...

  10. 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

随机推荐

  1. 数据结构与算法之PHP排序算法(插入排序)

    一.基本思想 插入排序算法是每一步将一个待排序的数据插入到前面已经排好序的有序序列中,直到所有元素插入完毕为止.   二.算法过程 1)将第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未 ...

  2. NodeJS中使用swig模板引擎

    NodeJS中的默认引擎是jade有点过于复杂,而且不是以HTML为基础的,学习成本和前端适应成本都很大.而ejs虽然简单,但不支持模板导入,而且效率一般. swig的语法简单,学习成本很低,符合常规 ...

  3. 20175227张雪莹 2018-2019-2 《Java程序设计》第六周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第六周学习总结 教材学习内容总结 第七章 内部类与异常类 内部类:在一个类中定义另一个类:包含内部类的类为外嵌类 内部类 ...

  4. 关于规范NOIP试题管理办法的通知

    由CCF主办的NOIP赛事举行在即,保密起见,现将有关规定发给各省赛区组织单位. 1.NOI各省组织单位负责试题保密工作. 2.NOIP初赛试卷为纸质版,复赛试卷为电子版. 3.在初赛进行中,如有选手 ...

  5. <文档学习>AirSim/using_car.md Choosing Your Vehicle: Car or Multirotor

    如何在AirSim中使用汽车 默认情况下,AirSim中使用的车型为多转子multirotor. 如果你想使用汽车,那么只需在你的settings.json(https://github.com/Mi ...

  6. js格式化数字

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. Linux下实现ssh免密认证

    添加域名映射 配置ssh免密登陆 拷贝master服务器公钥至本机 验证master服务器ssh免密登录其余服务器 添加域名映射 打开hosts文件 Vim /etc/hosts 添加域名对象 配置s ...

  8. mongoose的关联查询 :populate

    mongoose关联查询从3.2版本开始支持 基本用法如下: var studentSchema = new Schema({ name:String, age:String, school:{ ty ...

  9. 1.配置OpenCV开发环境VS2010

  10. os、os.path模块(文件/目录方法)

    1.模块的概念:模块是一个包含所有定义的变量.函数的文件,模块可以被其余模块调用. 2.利用OS模块实现对系统文件的. os模块中常见的方法: gercwd()     返回当前工作目录 chdir( ...