Skip to content

镜像

简介

Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。 就好似 Python 中的 类和对象,类就是镜像,容器就是对象

docker images

参数
参数默认值描述
-a, --all显示所有镜像(默认隐藏中间层镜像)
--digests显示摘要
-f, --filter根据提供的条件过滤输出
--no-trunc不要截断输出
-q, --quiet仅显示镜像 ID
  • 说明:列出本地主机上的镜像
  • 示例:
bash
# 列出本地所有镜像
docker images
# 列出本地所有镜像,含中间映像层
docker images -a
# 只显示镜像id
docker images -q
# 列出本地所有镜像的id,含中间映像层
docker images -qa
# 显示镜像的摘要信息
docker images --digests
# 显示镜像完整信息
docker images --no-trunc

docker history

参数
参数默认值描述
--format使用 Go 模板进行漂亮的打印搜索
--no-trunc不要截断输出
-q, --quiet仅显示镜像 ID
  • 说明:显示镜像的历史记录
  • 示例:
bash
docker history nginx:alpine

docker inspect

参数
参数默认值描述
--format使用 Go 模板进行漂亮的打印搜索
-s, --size如果类型为容器,则显示文件总大小
--disable-content-trusttrue跳过镜像验证
--type返回指定类型的 JSON
  • 说明:获取有关 Docker 对象的详细信息
  • 示例:
bash
# 获取实例的IP地址
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
# 获取实例的MAC地址
docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
# 获取实例的日志路径
docker inspect --format='{{.LogPath}}' $INSTANCE_ID
# 获取实例的镜像名称
docker inspect --format='{{.Config.Image}}' $INSTANCE_ID
# 列出所有端口绑定
docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID

docker tag

  • 说明:给镜像添加新的标签
  • 示例:
bash
# 给 mysql 打上标签lnmp,原来的标签是latest
docker tag mysql:latest mysql:lnmp

docker save

参数
参数默认值描述
-o, --output写入文件,而不是 STDOUT
  • 说明:将一个或多个镜像保存成压缩(tar)存档
  • 示例:
bash
# 导出镜像命名为nginx存在当前目录下
docker save -o nginx_docker nginx:latest
# 将导出的镜像以scp方式导到别的服务器上
scp nginx_v1 @root:192.168.48.26:/opt
# 批量打包镜像
docker save -o 包名.tar 镜像1 镜像2 镜像3
# 将机器上的所有镜像打包到xiao.tar文件里面
docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o xiao.tar

docker load

参数
参数默认值描述
-i, --input从 tar 存档文件中读取,而不是从 STDIN 中读取
-q, --quiet抑制负载输出
  • 说明:从 tar 存档或 STDIN 加载镜像
  • 示例:
bash
# 导入镜像,可以异地导入,但是必须要有docker引擎,并且版本不可以差太多
# 格式:docker load < 存出的文件
docker load < nginx_lnmp
# 解压加载镜像
docker load -i xiao.tar

docker build

参数
参数默认值描述
-f, --fileDockerfile 的名称(默认为“ PATH / Dockerfile”)
--add-host添加自定义主机到 IP 的映射(host:ip)
--build-arg设置构建时变量
-t, --tag名称以及标签,格式:“ name:tag”(可选)
  • 说明:从 Dockerfile 构建映像
  • 示例:
bash
# 1、编写dockerfile
cd /docker/dockerfile
vim mycentos
# 2、构建docker镜像
docker build -f /docker/dockerfile/mycentos -t mycentos:1.1 .

docker rmi

参数
参数默认值描述
-f, --force强制删除镜像
--no-prune不要删除未加标签的镜像
  • 说明:删除一个或多个镜像
  • 示例:
bash
# 当一个镜像有多个标签时,只是删除其中指定的标签
docker rmi 仓库名称:标签
# 会彻底删除该镜像
docker rmi 镜像ID号
# 单个镜像删除,相当于:docker rmi redis:latest
docker rmi redis
# 强制删除(针对基于镜像有运行的容器进程)
docker rmi -f redis
# 多个镜像删除,不同镜像间以空格间隔
docker rmi -f redis tomcat nginx
# 删除本地全部镜像
docker rmi -f $(docker images -q)