1. docker images
功能
查看所有镜像
语法
bash
docker images [option] [repository[:tag]]
常见参数
--a:列出所有镜像,包括中间层镜像(默认不显示中间层)--digests:限制镜像的 摘要信息-q: 只显示镜像ID--no-trunc:显示完整镜像信息,不截断
效果演示
bash
docker images nginx

2. docker tag
功能
给某个镜像打标签,确保可以正确推送到仓库
镜像推送到仓库需要在镜像名字前面添加仓库的地址:

地址添加方式使用的就是docker tag
用法
- 登录账号
bash
docker login hyy_registry.com
- 打标签
bash
docker tag myweb:v1.6 hyy_registry.com/myweb:v1.6
- 推送到远程仓库
bash
docker push hyy_registry.com/myweb:v1.6
注意点
打完标签后,该容器会有两个名字,分别是hyy_registry.com/myweb:v1.6和myweb:v1.6,但是它们的imgeID是一样的,并且使用同一个物理空间

3. docker pull
从远程仓库拉取指定对象
4. docker rmi
功能&语法
删除镜像
bash
docker rmi [options] [镜像ID/镜像名字]
常见参数
-f强制删除--no-prune: 不移除中间镜像(防止误删共享层,快速重新构建镜像)
5. docker save
功能&语法
用于把指定镜像,归档为tar压缩文件
bash
docker save -o [文件名称] [镜像名:标签]

6. docker load
功能&语法
把docker save的压缩文件加载为镜像
bash
docker load [options] [镜像tar文件]
选项
-i用于指定需要加载的文件(用的最多)-q静默输出,load命令运行时,会显示任务过程,如果是编写自动化脚本可以用-q
演示

7. docker inspect
功能
显示容器或者镜像的信息
bash
docker inspect [容器ID/镜像ID]
8.docker history
功能
查看指定镜像的构建历史信息,用于给镜像"瘦身"
bash
docker history [options] 镜像名字
选项
--human人类易于阅读的方式呈现--no-trunc不截断信息-q只显示镜像ID
9. docker import
功能
docker import是把tar文件转为镜像。但是它和docker save/load本质上是不同的,docker import要和docker export一起用。
docker export可以把一个正在运行(或者created)的容器打包为tar文件,然后通过docker import加载为一个全新的镜像。
save和export的区别相比于save,export是一种快照导入的方式,他会丢弃之前所有的构建信息以及元数据,只保留文件状态,因此体积较小,一般用于基础镜像构建;
而save命令保存了该镜像的所有层级,一般用于文件备份;
bash
docker import [options] export生成的tar文件 新的镜像名字
选项
-c用于定义Dockerfile指令-m添加文字说明
演示
bash
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8035b11487dd nginx:1.23.3 "/docker-entrypoint...." 26 hours ago Up 26 hours 0.0.0.0:80->80/tcp, [::]:80->80/tcp my_nginx
docker export -o my_nginx_1_11.tar 8035b11487dd
ls -lh | grep 1_11
-rw------- 1 root root 138M Jan 11 16:23 my_nginx_1_11.tar
docker import -c 'CMD ["nginx","-g","daemon off;"]' \ -m '这个nginx的主页我修改过' my_nginx_1_11.tar import_image:v1
sha256:9aa858f5e9dcc5456df374f1e69e9e313c5fc154af0b4323e24f02e08daee63c
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
import_image v1 9aa858f5e9dc 6 minutes ago 140MB
10. docker image prune
功能
批量删除镜像
bash
docker image prune [options]
选项
-adocker image prune默认只会删除悬空镜像,如果添加-a那么会删除所有未被使用的镜像-f强制删除镜像,并且跳过【y/n】交互提示,一般CI/CD用的多
什么是未被使用的镜像?
当前的所有容器中,没有一个是由该镜像创建的,那么这个镜像就是未被使用的
11. docker build
功能
根据DockerFile文件中的指令,构建镜像
bash
docoker build [options] 构建上下文路径
选项
-t: 给镜像打标签,例如docker build -t myweb:v1.0 .-f: 指定DocerFile文件,一般默认搜索工作目录名为Dockerfile的文件--no-cache: 告诉docker引擎,不要使用缓存构建,使用最新的资源,例如:防止update层没有更新最新系统-q:成功后只输出镜像ID--network:设置构建过程中,容器的网络类型(default、host、none...)--build-arg:动态设置构建参数,例如Dockerfile中设置了ARG version =1.1我们可以使用--build-arg VERSION=1.2进行动态修改
构建上下文.的含义:很多人认为
.的含义是告诉docker引擎构建上下文为当前目录,这个理解其实是片面的。实际上.的含义是:告诉docker客户端,把当前目录的所有文件打包,发给docker引擎进行处理;
为什么要强调这点呢?因为如果当前目录存在大量无关数据,那么整体构建时间、docker程序、磁盘IO都会爆炸!

