前言:

以前学习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. Qt-Designer打不开

    安装Qt后双击桌面的Designer没有反应,解决办法就是将安装路径里的qwebengineview.dll文件后缀名加个".bak".

  2. zk 的配额

    使用配额,可以统计 zk 某节点下的孩子数量和数据的字节数. 1. 创建节点 create /zhang xx 2.1 为节点设置 子节点 配额 setquota -n 1000 /zhang 2.2 ...

  3. Linux常用命令汇总集

    cd ./ 当前目录 ../ 上级目录 / 代表根目录 or 代表目录和文件之间的分隔符 .. pwd 查看当前路径 LS 查看当前目录下的文件 ls ./a/ 查看目标路径下的文件 tab 自动补全 ...

  4. learning makefile .PHONY

  5. react+classnames

    之前做项目的时候一直不知道有不知道有classnames这个东西,一直用的都是字符串拼接,感觉用的很别扭. classnames用法和angular1.x及vue差不多,所以用起来会比较顺手 1)安装 ...

  6. 解决ios兼容性问题

    其实也不算兼容性问题 在做一个手指切换动画时,在安卓显示正常但是在iOS上切换图片时整个页面会向上或向下窜,这样非常印象美观,这种现象是由于ios自带的下拉刷新功能能影响的: 解决方法: 添加阻止事件 ...

  7. Java语法基础学习DayTwelve(泛型)

    一.泛型(Generic)在集合中的使用 1.作用 (1)解决元素存储的安全问题 (2)解决获取数据元素时,需要类型强转的问题 2.代码案例 //在集合没有使用泛型的情况下 List list = n ...

  8. Spring源码学习(3)—— 自定义标签

    上一篇讲了Spring对默认标签的解析,Spring提供了很多属性,可以供开发者根据不同情况使用.绝大多数情况下,这些功能就已经足够了.但是,当用户有更特殊的需求,又或者很多公司自己实现的服务治理框架 ...

  9. 自动化测试-19.selenium定位之通过JS修改html写入日期数据以及从文本读取数据实战

    # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.support.select import ...

  10. windows server 2012启动进入cmd解决方法

    感谢网友http://sns.yhjy.cn/u/XperiaZ/Blog/t-4748 由于删除了framework 4.5引起的. windows server 2012默认安装framework ...