使用Docker 镜像
宽为限 紧用功 功夫到 滞塞通
简介
镜像(image)是Docker三大核心概念中最重要的,Docker运行前需要本地存在对应的镜像,如果没有,则会从默认镜像仓库下载,也可以自己配置,使用自定义仓库。
一、搜寻镜像
使用 docker search 命令搜寻远端仓库共享的镜像。用法为:docker search TERM,支持的参数主要包括:
- –automated=true|false:仅显示自动创建的镜像,默认为否;
- –no-trunc=true|false:输出信息不截断显示,默认为否;
- -s, – stars=X:指定仅显示评价为指定星级以上的镜像,默认为0,即输出所有镜像。
look
二、获取镜像
使用 docker pull 命令直接从仓库下载镜像。格式为: docker pull NAME[:TAG]。其中,NAME是镜像名称(用来区分镜像),TAG是镜像标签(往往用来显示版本信息)。通常情况下,描述一个镜像需要包括“名称”+“标签”信息。
对于Docker镜像来说,如果不显式指定TAG,则默认会选择latest标签,这回事下载仓库中最新版本的镜像。
如果从非官方的仓库下载,则需要在仓库名称前面指定完整的仓库地址。例如从网易蜂巢的镜像源下载ubuntu:14.04镜像,命令如下:
$ daocker pull hub.c.163.com/public/ubuntu:14.04
pull 子命令支持的选项主要包括:
-a, –all-tags=true|false:是否获取仓库中的所有镜像,默认为否。
三、查看镜像信息
1、使用images命令列出镜像
这里演示了几个常用子命令选项,更多选项还可以通过 man docker-images来查看。
2、使用tag命令添加镜像标签
为了方便在后续工作中使用特定的镜像,还可以使用docker tag命令来为本地镜像任意添加新的标签。例如给docker.io/hello-world:latest镜像添加一个新标签:
3、使用inspect 命令查看详细信息
使用docker inspect命令可以获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等。
4、使用history命令查看镜像历史
既然镜像是由多层组成,那么怎么知道各个层的内容具体是什么呢?Look下图:
四、删除镜像
1、使用标签删除
$ docker rmi TAG
如果同一个镜像有多个标签的话只会删除指定标签,并不影响镜像,但如果只剩一个镜像标签时它就会删除整个镜像。
2、使用ID删除
$ docker rmi ID
删除前请先停止该镜像启动的容器,当然也可以用子命令选项 -f 强行删除,(学习测试时用的超爽,真怕用习惯了)
五、创建镜像
创建镜像主要有三种方法:基于已有的镜像容器创建、基于本地模板导入、基于Dockerfile创建。
这里只讲第一种,第二种相对少用到,第三种最常用,以后的会有专门的一篇博客对其进行学习。
基于已有镜像的容器创建
用 commit 命令创建镜像
创建一个新容器命令:
$ sudo docker run -i -t ubuntu /bin/bash
安装 Lua 语言环境:
apt-get update -y && apt-get install -y luajit luarocks
再用 exit 命令退出容器,再运行 docker commit 命令:
$ exit
$ sudo docker commit eafd9111ada6 docker/lua
b1829eb2e483c9d353dd8cd21da9bf2f530bd38ccf5a95e08944a887ec856e99
命令中,指定了要提交的修改过的容器的ID、目标镜像仓库、镜像名。commit提交的知识创建容器的镜像与容器的当前状态之间的差异部分,很轻量。
查看新创建的镜像:
$ sudo docker images docker/lua
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker/lua latest b1829eb2e483 25 seconds ago 301.5 MB
子命令选项:
-a 作者信息
-c 提交时执行的Dockerfile指令,具体之后再详讲
-m 提交消息
-p 提交时暂停容器运行
六、存出和载入镜像
如果要导出镜像到本地文件,可以使用docker save 命令。
可以使用docker load 将导出的tar文件再导入到本地镜像库。
两种方法哦!–input 或 <
七、上传镜像
使用docker push命令上传到镜像仓库,默认上传到Docker Hub 官方仓库(需要登录)命令格式为:
docker push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/NAME[:TAG]]
第一次上传时,会提示输入登录信息或进行注册。
站在巨人的肩膀上
本篇博文参考的图书是《Docker技术入门与实践》第2版
参考的网络文章
http://www.runoob.com/w3cnote/docker-use-container-create-image.html
上一篇: VBS获取当前目录下所有文件夹名字的代码
下一篇: Docker入门之-Docker镜像
推荐阅读
-
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题_javascript技巧
-
Python使用dis模块把Python反编译为字节码的用法详解
-
Knockout text绑定DOM的使用方法_基础知识
-
devstack安装使用openstack常见问题与解决办法_MySQL
-
使用PHPMyAdmin修复论坛数据库的图文方法_php实例
-
Android 入门第十讲02-广播(广播概述,使用方法(系统广播,自定义广播,两个activity之间的交互和传值),EventBus使用方法,数据传递,线程切换,Android的系统广播大全)
-
mysql使用status命令测试/判断数据库是否连接
-
php生成数组的使用示例_PHP教程
-
《C++ Primer Plus 第六版》学习笔记:第十一章 使用类
-
有关帮助使用的5篇文章推荐