Docker系列教程04-Docker镜像常用命令

简介: 原文:http://www.itmuch.com/docker/04-docker-command-images/我们首先来讨论Docker镜像的常用命令。

原文:http://www.itmuch.com/docker/04-docker-command-images/

我们首先来讨论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/

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
2月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
1075 5
|
2月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
384 124
|
3月前
|
JavaScript Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
378 100
|
3月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
310 99
|
3月前
|
缓存 Docker 容器
优化Docker镜像大小的五个实用技巧
优化Docker镜像大小的五个实用技巧
328 98
|
3月前
|
安全 Go Docker
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
496 5
|
2月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
1997 8
|
3月前
|
Java Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
205 8
|
4月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
309 16

热门文章

最新文章