Docker系列教程04-Docker镜像常用命令
我们首先来讨论Docker镜像的常用命令。
搜索镜像
可使用 docker search
命令搜索存放在Docker Hub中的镜像。
命令格式:
docker search [OPTIONS] TERM
参数:
Name, shorthand |
Default |
Description |
---|---|---|
--automated |
false |
只列出自动构建的镜像 |
--filter,-f |
根据指定条件过滤结果 |
|
--limit |
25 |
搜索结果的最大条数 |
--no-trunc |
false |
不截断输出,显示完整的输出 |
--stars,-s |
0 |
只展示Star不低于该数值的结果 |
示例1:
docker search java
执行该命令后,Docker就会在Docker Hub中搜索含有“java”这个关键词的镜像仓库。执行该命令后,可看到类似于如下的表格:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
java Java is a concurrent, ... 1281 [OK]
anapsix/alpine-java Oracle Java 8 (and 7) ... 190 [OK]
isuper/java-oracle This repository conta ... 48 [OK]
lwieske/java-8 Oracle Java 8 Contain ... 32 [OK]
nimmis/java-centos This is docker images ... 23 [OK]
...
该表格包含五列,含义如下:
① NAME:镜像仓库名称。
② DESCRIPTION:镜像仓库描述。
③ STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于GitHub的Stars。
④ OFFICAL:表示是否为官方仓库,该列标记为[OK]的镜像均由各软件的官方项目组创建和维护。由结果可知,java这个镜像仓库是官方仓库,而其他的仓库都不是镜像仓库。
⑤ AUTOMATED:表示是否是自动构建的镜像仓库。
示例2:
docker search -s 10 java
下载镜像[重要]
使用命令 docker pull
命令即可从Docker Registry上下载镜像。
命令格式:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
参数:
Name, shorthand |
Default |
Description |
---|---|---|
--all-tags,-a |
false |
下载所有标签的镜像 |
--disable-content-trust |
true |
忽略镜像的校验 |
示例1:
docker pull java
执行该命令后,Docker会从Docker Hub中的java仓库下载最新版本的Java镜像。
示例2:
该命令还可指定想要下载的镜像标签以及Docker Registry地址,例如:
docker pull reg.itmuch.com/java:7
这样就可以从指定的Docker Registry中下载标签为7的Java镜像。
列出镜像[重要]
使用 docker images
命令即可列出已下载的镜像。
执行该命令后,将会看到类似于如下的表格:
REPOSITORY TAG IMAGE ID CREATED SIZE
java latest 861e95c114d6 4 weeks ago 643.1 MB
hello-world latest c54a2cc56cbb 5 months ago 1.848 kB
该表格包含了5列,含义如下:
① REPOSITORY:镜像所属仓库名称。
② TAG:镜像标签。默认是latest,表示最新。
③ IMAGE ID:镜像ID,表示镜像唯一标识。
④ CREATED:镜像创建时间。
⑤ SIZE:镜像大小。
命令格式:
docker images [OPTIONS] [REPOSITORY[:TAG]]
参数:
Name, shorthand |
Default |
Description |
---|---|---|
--all,-a |
false |
列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层) |
--digests |
false |
显示摘要信息 |
--filter,-f |
显示满足条件的镜像 |
|
--format |
通过Go语言模板文件展示镜像 |
|
--no-trunc |
false |
不截断输出,显示完整的镜像信息 |
--quiet,-q |
false |
只显示镜像ID |
示例:
docker images
docker images java
docker images java:8
docker images --digests
docker images --filter "dangling=true" # 展示虚悬镜像
删除本地镜像[重要]
使用 docker rmi
命令即可删除指定镜像。
命令格式:
docker rmi [OPTIONS] IMAGE [IMAGE...]
参数:
Name, shorthand |
Default |
Description |
---|---|---|
--force,-f |
false |
强制删除 |
--no-prune |
false |
不移除该镜像的过程镜像,默认移除 |
例1:删除指定名称的镜像。
docker rmi hello-world
表示删除hello-world这个镜像。
例2:删除所有镜像。
docker rmi -f $(docker images)
-f参数表示强制删除。
保存镜像
使用 docker save
即可保存镜像。
命令格式:
docker save [OPTIONS] IMAGE [IMAGE...]
参数:
Name, shorthand |
Default |
Description |
---|---|---|
--output,-o |
Write to a file, instead of STDOUT |
例1:
docker save busybox > busybox.tar
docker save --output busybox.tar busybox
加载镜像
使用 docer load
命令即可加载镜像。
命令格式:
docker load [OPTIONS]
参数:
Name, shorthand |
Default |
Description |
---|---|---|
--input,-i |
从文件加载而非STDIN |
|
--quiet,-q |
false |
静默加载 |
例1:
docker load < busybox.tar.gz
docker load --input fedora.tar
构建镜像[重要]
通过Dockerfile构建镜像。
命令格式:
docker build [OPTIONS] PATH | URL | -
参数:
Name, shorthand |
Default |
Description |
---|---|---|
--add-host |
添加自定义从host到IP的映射,格式为(host:ip) |
|
--build-arg |
设置构建时的变量 |
|
--cache-from |
作为缓存源的镜像 |
|
--cgroup-parent |
容器可选的父cgroup |
|
--compress |
false |
使用gzip压缩构建上下文 |
--cpu-period |
0 |
限制CPU CFS (Completely Fair Scheduler) 周期 |
--cpu-quota |
0 |
限制CPU CFS (Completely Fair Scheduler) 配额 |
--cpu-shares,-c |
0 |
CPU使用权重(相对权重) |
--cpuset-cpus |
指定允许执行的CPU |
|
--cpuset-mems |
指定允许执行的内存 |
|
--disable-content-trust |
true |
忽略校验 |
--file,-f |
指定Dockerfile的名称,默认是‘PATH/Dockerfile’ |
|
--force-rm |
false |
删除中间容器 |
--iidfile |
将镜像ID写到文件中 |
|
--isolation |
容器隔离技术 |
|
--label |
设置镜像使用的元数据 |
|
--memory,-m |
0 |
设置内存限制 |
--memory-swap |
0 |
设置Swap的最大值为内存+swap,如果设置为-1表示不限swap |
--network |
default |
在构建期间设置RUN指令的网络模式 |
--no-cache |
false |
构建镜像过程中不使用缓存 |
--pull |
false |
总是尝试去更新镜像的新版本 |
--quiet,-q |
false |
静默模式,构建成功后只输出镜像ID |
--rm |
true |
构建成功后立即删除中间容器 |
--security-opt |
安全选项 |
|
--shm-size |
0 |
指定 /dev/shm 目录的大小 |
--squash |
false |
将构建的层压缩成一个新的层 |
--tag,-t |
设置标签,格式:name:tag,tag可选 |
|
--target |
设置构建时的目标构建阶段 |
|
--ulimit |
Ulimit 选项 |
拓展阅读
Docker命令:https://docs.docker.com/engine/reference/commandline/docker/
- hdu 1003 Max Sum(最大子窜和)
- React第三方组件2(状态管理之Refast的使用④中间件middleware使用)
- 高维分面应用——ggplot2分面气泡图饼图
- poj 1579 Function Run Fun
- React第三方组件2(状态管理之Refast的使用③扩展ctx)
- 财经小知识——CRS风暴与全球离岸金融中心
- The Triangle
- React第三方组件2(状态管理之Refast的使用②异步修改state)
- UVa Automatic Editing
- React第三方组件2(状态管理之Refast的使用①简单使用)
- uva Excuses, Excuses!
- React第三方组件5(状态管理之Redux的使用④TodoList下)
- 2017/6/9-Python文件读写的方法
- React第三方组件5(状态管理之Redux的使用③TodoList中)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 对Jenkinsfile语法说不,开源项目Jenkins Json Build挺你
- Volatile概述
- SparkStreaming和Kafka基于Direct Approach如何管理offset
- Spark在处理数据的时候,会将数据都加载到内存再做处理吗?
- 美团点评2020年测试工程师笔试题
- Pytest之重运行及生成测试报告
- 一条SQL的奇妙旅行
- 表格的融合
- 解放双手,使用批处理达到账号密码之类再也用不着手动输入!
- 教你在几分钟内构建一个Python包
- 撸了一个 Feign 增强包
- YCbCr444转YCbCr422
- fpga实现YCbCr422转YCbCr444
- ES系列之原理copy_to用好了这么香
- 面试官写了个双冒号::问我这是什么语法?Java中有这玩意?