Docker入门之二镜像
Docker大部分的操作都是围绕三大核心概念:镜像、容器、仓库。学Docker首先得了解这几个词。这几个词可能平时也会有涉及,但Docker中可能不是同样得概念。
一、三大核心概念
镜像:可能在安装软件操作系统的时候可能会用到镜像,Docker中的镜像也操作系统镜像文件类似,可以理解成是一个模板,这个有点类似手机app应用。
容器:容器就是用来装东西的,Docker中容器用来装什么呢,它用来装由镜像创建的应用运行实例。这个有点类似手机中的沙盒,每个手机app都用自己的运行环境,不受其他app的影响。
仓库:仓库也是用来存放东西的,它是一种静态的,存放的是镜像文件,而容器是一种动态的,运行的是镜像。这个有点类似app store,用户可以从仓库中下载app安装到手机中,手机中每个应用都是一个沙盒环境。
三大核心一篇博客是写不完的,一个一个的来,今天先学习下镜像image。首先在学习Docker时如果有的地方比如参数什么的不知道了,我们可以通过help来熟悉,比查其他的资料书快多了。如果我们不知道怎么用了,我们可以先通过docker --help来获取大的知识点,然后找到对应的小的知识点,然后再help,而且英文注释也不是很难。


二、镜像
Docker运行容器前需要本地存放有对应的镜像,如果镜像没有,会存默认的仓库下载,既然是默认仓库那肯定是公共的,当然也可以自定义自己私有的镜像仓库。
1.获取镜像
使用镜像首先得获取镜像,使用pull来拉取镜像文件到本地。使用它还是先看help。可以看到它得格式和一些参数说明。
docker pull --help

下图是使用pull来获取hello-world镜像。tag是取最新得。

2.查看镜像
使用docker images --help来查看格式和参数说明

下面截图中使用了-a、--digests、--no-trunc -q

3.使用tag添加镜像标签 还是先help

这里我还是使用hello-world镜像,给它一个标签myhello-world,可以留意下它们两个的id,其实它们指向同一个镜像,只是给它起了个别名。

4.使用inspect查看详细信息,还是老套路,看help

通过inspect查看hello-world的信息

5.使用history查看镜像历史记录
第一步还是通过help查看格式和参数

下面使用history查看hello-world的记录

6.镜像查找
可以使用search来查找镜像,还是help来查看格式和参数

下图是查找hello-world 镜像,这个查找stars>3的

7.删除镜像
还是先看help,使用rmi时,如果通过标签删除镜像时,如果该镜像只有一个标签,那在删除标签之后也会把该镜像也删除,如果有多个标签那只删除对应的标签,如果通过ID删除,如果该镜像创建的容器存在是镜像文件无法删除,其次会尝试删除所有指向该镜像的标签,然后删除该镜像文件本身。

- 使用标签删除镜像
下面删除了myhello_world的镜像,然后查看镜像列表,发现只有hello-world了。

2.使用镜像ID删除镜像
下图可以看到,我想通过id删除镜像hello-world时,有一个错误,说不能删除,因为这个镜像在被容器8a2faee3dfa4使用,使用ps查看容器,还真有一个容器id是这个。


那直接删除镜像不行,该怎么正确删除呢?我们可以先删除依赖镜像的所有容器,然后再来删除镜像。

上图尝试删了几次,一直提示有冲突,把所有与它依赖的容器删完了,才能删除镜像,这确实有点麻烦,其实可以使用-f参数强制删除,不过这中太暴力了。
8.创建镜像
还是通过help来查看格式以及参数

- 基于已有镜像的容器创建
首先查看下容器记住容器id,然后使用commit提交并将镜像id设置为cuiywhelloworld.
- 基于本地模板导入
还是通过help来查看格式和参数
这里没找到合适的模板就没做实验。暂留着,或者有没有朋友给提供一个能在window下使用的模板。
9.存出和载入镜像
- 存出镜像
可以使用save来存出镜像 通过-o来指定路径
- 载入镜像
可以使用load来载入镜像
- 实验
下图是我先导出镜像hello-world到E盘,导出后可以在E:\docker下看到helloworld.tar文件,然后又将tar镜像压缩文件导入

10.上传镜像
有pull拉就有push推,使用push可以提交镜像

这里先将cuiywhelloworld添加一个新的标签cuiyw/helloworld,然后通过push cuiyw/helloworld来提交,不过好尴尬,提交请求被拒,失败了。有没有老司机可以直接提交到公共仓库的,等学到仓库得时候再提交试一试。

三、总结
花了昨晚一个晚上加今天一天的时间终于把镜像这块大致学了一下,内容蛮多的,可能截图毕竟多,文字毕竟少,还是方法,按照一定的套路来学,也能很快上手,最重要的还是help。
Docker入门之二镜像的更多相关文章
- 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World
操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service doc ...
- docker学习之二镜像创建
继上一篇docker入门之后写一点使用的经验. 通过命令:docker run -it REPOSITORY或IMAGE ID 注:-it后面跟的字段可以通过下面指令获得 创建运行的容器,会进入一 ...
- 【转载】大白话Docker入门(二)
原文:https://yq.aliyun.com/articles/63517?spm=a2c4e.11153940.blogcont63035.15.12011c3fddklk0 上篇的大白话Doc ...
- Docker入门(二):安装/卸载
这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...
- Docker入门(二)在docker使用MongoDB
本文将介绍如何在docker中使用MongoDB. 如果你是一名MongoDB的初学者,那么你入门MongoDB的第一件事就是安装MongoDB,但是安装MongoDB又不是一件简单的事情,还 ...
- docker入门(二)
打造自己的镜像 首先我们启动busybox镜像为容器,在该容器中安装一个小工具,再将这个容器保存为新的镜像 首先我们下载一个镜像,再启动容器 [root@centos ~]# docker pull ...
- Docker入门之--定制镜像
1. 首先定制一个Web 服务器为例 1.1 启动镜像 执行下面命令 docker run --name webserver -d -p 80:80 nginx 1.2 查看容器和镜像状态 然后执行下 ...
- docker 入门 (二)基本操作
这一篇讲docker的基本操作. 请自行安装docker到自己的电脑上. 镜像的获取 要获取镜像,最简单的当然是从仓库去获取,docker的官方网站很不好练,其他的可选项有docker中国官网,阿里镜 ...
- 【实战】Docker 入门实战一:ubuntu 和 centos 安装Docker
Docker是什么 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布 ...
随机推荐
- AngularJS 动画总结
对读过的几篇文章的总结,尽量保证逻辑性,不断补充.精简.更正. 后面会列出参考文章地址,方便以后取用.感谢各位作者以及翻译者. AngularJS 动画思考 一.如何使用 1)我们需要构建什么 2)如 ...
- AC Analysis
1.从Options---sheet properties—circuit—show all调出来节点编号 :
- vue.js基础知识篇(7):表单校验详解
目录 网盘 第12章:表单校验 1.npm安装vue-validator $ npm install vue-validator 代码示例: var Vue=require("vue&quo ...
- jQuery遍历-祖先
祖先是父.祖父或曾祖父等等. 通过 jQuery,您能够向上遍历 DOM 树,以查找元素的祖先. 向上遍历 DOM 树 这些 jQuery 方法很有用,它们用于向上遍历 DOM 树: parent() ...
- Django连接mysql数据库
1.app中对应的models.py配置相关表结构信息 from django.db import models class Question(models.Model): question_text ...
- centos 7 mariadb 启动问题
安装完了 mariadb 后 有一天重启机器发现 启动不了 mariadb.service systemctl start mariadb.service //然后发现下面的问题 job for ma ...
- Keil提示premature end of file错误 无法生成HEX文件
今天舍友在使用Keil UV4的时候遇到一个问题:Keil提示premature end of file,无法生成hex文件. 代码是没有错误的.那么问题就出在设置上面了. 百度了一圈,发现很少人解答 ...
- SVG渐变
前面的话 给SVG元素应用填充和描边,除了使用纯色外,还可以使用渐变.本文将详细介绍SVG渐变 线性渐变 有两种类型的渐变:线性渐变和径向渐变.必须给渐变内容指定一个id属性,否则文档内的其他元素不能 ...
- WebForm页面间传值方法(转)
Asp.NET WEB FORMS 给开发者提供了极好的事件驱动开发模式.Asp .NET为我们提供了三种方式,一种是可以通过用QueryString来传送相应的值,再一种是通过session变量来传 ...
- ★10 个实用技巧,让Finder带你飞~
10 个实用技巧,让 Finder 带你飞 Finder 是 Mac 电脑的系统程序,有的功能类似 Windows 的资源管理器.它是我们打开 Mac 首先见到的「笑脸」,有了它,我们可以组织和使用 ...