Docker镜像常用命令
镜像(image)是Docker三大核心概念中最重要的,是运行容器的前提。
Docker运行容器前需要本地存在对应的镜像,如果镜像没保存在本地,Docker会尝试先从默认镜像仓库下载(默认使用Docker Hub公共注册服务器中的仓库),用户也可以通过配置,使用自定义的镜像仓库。
一、镜像获取
docker pull:直接从Docker Hub镜像源来下载镜像
命令格式:docker pull NAME[:TAG]
其中,NAME为镜像仓库的名称(区分镜像),TAG为镜像的标签(表示版本信息)
例如,获取一个Ubuntu 14.04系统基础镜像:docker pull ubuntu:14.04
如果不显示指定TAG,则默认会选择latest标签,下载仓库中的最新版本镜像。例如:docker pull ubuntu
下载过程可以看出,镜像文件一般由若干层(layer)组成,每一层有一个唯一id串(实际上完整id包括256比特,由64个十进制字符组成)。使用docker pull命令下载时会获取并输出镜像的各层信息。当不同的镜像包括相同的层时,本地仅存储层的一份内容,减小了需要的存储空间。
在使用不同的镜像仓库服务器的情况下,可能会出现镜像重名的情况。如果从非官方的仓库下载,则需要在仓库名称前指定完整的仓库地址。例如:docker pull hub.c.163.com/public/ubuntu:14.04
二、查看镜像信息
1、查看所有镜像
docker images:列出本地主机上已有镜像的基本信息
列出镜像信息中包含字段信息有来自于哪个仓库(repository)、镜像的标签信息(tag)、镜像的ID(image id)、创建时间(created)、镜像大小(size)。镜像大小信息只表示该镜像的逻辑体积大小,实际上由于相同的镜像层本地只会存储一份,物理上占用的存储空间会小于各镜像的逻辑体积之和。
images子命令主要支持如下选项:
-a,--all=true|false:列出所有的镜像文件(包括临时文件),默认为否;
--digests=true|false:列出镜像的数字摘要值,默认为否;
-f,--filter=[]:过滤列出的镜像;
--format=”TEMPLATE”:控制输出格式;
--no-trunc=true|false:对输出结果中太长的部分是否进行截断;
-q,--quiet=true|false:仅输出ID信息。
2、使用tag命令添加镜像标签
docker tag:为本地镜像任意添加新的标签
添加自定义标签后的镜像ID与原镜像完全一致,实际上它们指向同一个镜像文件,只是别名不同。docker tag命令添加的标签实际上起到了类似链接的作用。例如:docker tag ubuntu:latest myubuntu:latest
3、使用inspect命令查看详细信息
docker inspect:获取该镜像的详细信息
例如:docker inspect ubuntu:14.04
返回的是一个JSON格式的消息,如果只需要其中一项内容时,可以使用参数-f来指定,例如:docker inspect -f {{“.Architecture”}}
4、使用history命令查看镜像历史
docker history:列出镜像文件各层的创建信息
例如:docker history ubuntu:14.04
三、镜像搜索
docker search:搜索远端仓库中共享的镜像
用法为docker search TERM,支持的参数主要包括:
--automated=true|false:仅显示自动创建的镜像,默认为否;
--no-trunc=true|false:输出信息不截断显示,默认为否;
-s,--starts=X:指定仅显示评价为指定星级以上的镜像,默认为0。
输出结果返回很多包含关键字的镜像,其中包括镜像名字、描述、星级(表示该镜像的受欢迎程度)、是否官方创建、是否自动创建等,按照星级评价进行排序。
四、镜像删除
docker rmi:删除镜像
命令格式:docker rmi IMAGE [IMAGE...],其中IMAGE可以为标签或ID。
当同一个镜像拥有多个标签的时候,docker rmi命令指示删除该镜像多个标签中的指定标签而已,并不影响镜像文件。当通过ID执行操作时,会先尝试删除所有指向该镜像的标签,然后删除该镜像文件本身。当有该镜像创建的容器存在时,镜像文件默认是无法删除的,如果要想删除该镜像,可以使用-f参数(通常不推荐)。
五、镜像创建
镜像创建的方法主要有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建。
1、基于已有镜像的容器创建
docker commit
命令格式:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]],主要选项包括:
-a,--author=””:作者信息;
-c,--change=[]:提交的时候执行Dockerfile指令;
-m,--message=””:提交消息;
-p,--pause=true:提交时暂停容器运行。
2、基于本地模板导入
docker import:直接从一个操作系统模板文件导入一个镜像
命令格式:docker import [OPTIONS] file |URL|-[REPOSITORY[:TAG]]
要直接导入一个镜像,可以使用OpenVC提供的模板来创建,或者用其他已导出的镜像模板来创建。
六、镜像存出和载入
1、镜像存出
docker save:导出镜像到本地文件
例如:docker save -o ubuntu_14.04.tar ubuntu:14.04
2、镜像载入
docker load:将导出的tar文件导入到本地镜像库
例如:docker load –input ubuntu_14.04.tar
七、镜像上传
docker push:上传镜像到仓库,默认上传到Docker Hub官方仓库
命令格式:docker push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]
Docker镜像常用命令的更多相关文章
- Docker:常用命令大全 [七]
一.docker的命令的解释 1.命令解释 docker run -d -p 80:80 nginx run (创建并运行一个容器) -d 放在后台 -p 端口映射 nginx docker镜像的名字 ...
- Docker Kubernetes 常用命令
Docker Kubernetes 常用命令 增 # 通过文件名或标准输入创建资源. kubectl create # 读取指定文件内容,进行创建.(配置文件可指定json,yaml文件). kube ...
- Docker(二十二)-Docker Swarm常用命令
#查看集群节点 docker node ls #创建nginx服务 #docker pull hub.test.com:5000/almi/nginx:0.1 #下载私有仓库镜像 docker ser ...
- Dockerfile指令及docker的常用命令
DockerfileFROM: FROM <image> FROM <image>:<tag> MAINTAINER: MAINTAINER <name> ...
- Docker Swarm常用命令
#查看集群节点 docker node ls #创建nginx服务 #docker pull hub.test.com:5000/almi/nginx:0.1 #下载私有仓库镜像 docker ser ...
- Docker学习(三)认识Docker和常用命令
Docker学习(三)认识Docker和常用命令 Docker体系结构 docker服务端,作为服务的提供方,核心进程 docker daemon,所有docker命令都是通过这个进程完成的 REST ...
- docker-管理镜像常用命令
1. docker管理镜像常用命令 指令 说明 docker run [容器 CONTAINER ID] 创建一个新的容器并运行一个命令 docker start [容器 CONT ...
- 【Docker入门】Docker的常用命令
了解和安装完docker之后,我们学习一下docker的常用命令就和当初学linux命令一样,放心命令其实大致相同只不过细节不同. 一.Docker启动类命令 1.启动docker:syste ...
- docker之常用命令、自定制镜像、公(私)仓库的上传和下载
一.docker命令 1.参数和命令汇总 1. 参数 Options: --config=~/.docker Location of client config files #客户端配置文件的位置 - ...
随机推荐
- jdbc,mysql 数据库BLOB返回值 [B 的问题
当jdbc返回值类型对应的java类型是[B,那就表示返回值的类型比较模糊难以区分: BLOB类型是mysql数据库常用来存储,但是通过getBlob()方法获取值得时候会报错: 错误信息: java ...
- 使用nginx作为webservice接口代理
通常情况下,企业并不会直接开放系统接口给到外网,并且在企业内部同样有SOA或者ESB这样的接口统一管理的工具. 那么,大多数情况下,如果需要与外部系统,如云系统,或者其他企业的系统做接口时采取的方式如 ...
- Nginx配置中的log_format用法梳理(设置详细的日志格式)
nginx服务器日志相关指令主要有两条:一条是log_format,用来设置日志格式:另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小,可以参加ngx_http_log_mo ...
- The C compiler identification is unknown解决办法
环境:VS2015,CMake3.12.0. 问题一: 解决办法:下载并安装Windows SDK version 8.1. 问题二: 解决办法:这个问题百度了半天也没找到合适的办法,好多博客都是复制 ...
- Vue(六) 表单与 v-model
学习使用 v-model 指令完成表单数据双向绑定 基本用法 表单控件在实际业务较为常见,比如单选,多选.下拉选择.输入框等,用他们可以完成数据的录入.校验.提交等.Vue.js 提供了 v-mode ...
- ajax请求本地文件
这是一个小随笔,真的很简短! 主要入坑点有两个 一.Chrome浏览器默认不支持ajax读取本地文件 解决:1.关闭所有Chrome网页 2.右击Chrome浏览器,打开“属性” 3.弹出属性 ...
- PB测款方法 店铺运费模板 设置
https://www.wishhack.com/article/44.html 子账号有权限设置运费
- springmvc文件上传示例
首先要导包,用的的包是: commons-fileupload-*.*.*.jar commons-io-*.*.jar *号代表版本号 这里给大家分享一下下载链接:https://files.cnb ...
- char与char的区别
char与varchar的区别 : char (13)长度固定, 如'www.qq.net' 存储需要空间 12个字符: varchar(13) 可变长 如'www.qq.net' 需要存储空间 9字 ...
- LINK : fatal error LNK1104: cannot open file .exe' 重开application Experience 服务即可
这是一个坑, , 答案五花八门这个解决了我的痛点. 就这样了.