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 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布 ...
随机推荐
- C# 实例练习——字符串处理(第三天)
1. 编写程序将IP地址分解后输出(将IP地址中的点(.)去掉,替换成空格符),如:132.123.4替换后为132 123 4. Console.WriteLine("请输入您电脑 ...
- <当幸福来敲门>之一些很喜欢的台词收藏
<当幸福来敲门> ================ ================
- BotVS配置托管者-基于阿里云
1. 上传Linux 64位 托管者并解压在 https://www.botvs.com/m/add-node 上下载Linux 64位 托管者, 当前下载地址 https://dn-botvs.qb ...
- 推广技巧:新站要如何推广引流做到日IP10000?
一.回复高人气帖子插楼推广 1.找高人气的帖子在二楼或者二楼楼层中直接插入链接推广.虽然这种方法存活率比较低,但也算是贴吧里面最直接的有效的方法.一般我们分为三种: 1.1图中链接是一个短网址,这个是 ...
- 转:每天一个linux命令(1):ls命令
ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...
- KVM+Qemu+Libvirt实战
上一篇的文章是为了给这一篇文件提供理论的基础,在这篇文章中我将带大家一起来实现在linux中虚拟出ubuntu的server版来 我们需要用KVM+Qemu+Libvirt来进行kvm全虚拟化,创建虚 ...
- SpringMVC知识点小结
SpringMVC: 1.SpringMVC和Spring的关系: 软件开发的三层架构: web层[表示层.表现层]---->Service层---->Dao[DataBase Acces ...
- 低版本浏览器支持HTML5标签的方法
最近刷了一道面试题,是关于低版本浏览器支持HTM5标签的写法,在网上找了一些,都行之有效,但是缺少整体总结,所以在这里总结一下,方便其他人过来阅读. IE低版本需要支持HTML5标签: 方法1.传统引 ...
- ireport导出中英文pdf
准备: 报表开发工具:ireport 5.6.0 报表框架: jasperreport5.6.0 1.中文格式设置pdf fontname.isembedded.pdfencoding pdf fon ...
- Spring 事务管理笔记
本文为 Spring 框架的事务管理学习笔记,官网文档地址为:Transaction Management,隔离级别及传播属性解释来自 org.springframework.transaction. ...