Docker之镜像
1 镜像简介
镜像是一个Docker的可执行文件,其中包括运行应用程序所需的所有代码内容、依赖库、环境变量和配置文件等。通过镜像可以创建一个或多个容器。
镜像文件通过docker跑起来,就是容器。暂时理解为,每一个容器是独立的操作系统跑着软件,(centos+redis、centos+mysql、Debian+python3.6),但容器并没有虚拟化出真正的操作系统。
假设centos7的镜像跑起来,就是容器,你就当成在你宿主机上(云服务器)跑了一个centos7的操作系统(跑在虚拟机里的)
2 镜像管理
2.1 镜像搜索-docker search
我们一般直接到 官网 https://hub.docker.com/ 搜索
# 作用:
搜索Docker Hub(镜像仓库)上的镜像
# 命令格式:
docker search [OPTIONS] TERM
# 命令参数(OPTIONS):
-f, --filter filter 根据提供的格式筛选结果
--format string 利用Go语言的format格式化输出结果
--limit int 展示最大的结果数,默认25个
--no-trunc 内容全部显示
# 命令演示
docker search -f is-offical=true ubuntu # 搜索乌班图官方镜像
docker search ubuntu # 搜索乌班图,模糊匹配
2.2 镜像查看 - docker images/docker image ls
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
# 作用:
列出本地镜像
# 命令格式:
docker images [OPTIONS] [REPOSITORY[:TAG]]
或者 docker image ls [OPTIONS] [REPOSITORY[:TAG]]
# 命令参数(OPTIONS):
-a, --all 展示所有镜像 (默认隐藏底层的镜像)
--no-trunc 不缩略显示
-q, --quiet 只显示镜像ID
# 命令演示:
docker images
docker images centos:latest
# 显示示例:
REPOSITORY TAG IMAGE ID CREATED SIZE
镜像名字 版本 镜像id 创建时间 大小
2.3 镜像下载 - docker pull
# 作用:
下载远程仓库(如Docker Hub)中的镜像到本地
# 命令格式:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
# 命令参数(OPTIONS):
-a, --all-tags 下载所有符合给定tag的镜像
# 命令演示:
docker pull ubuntu # 默认拉的最新版本latest
docker pull centos:centos7 # 下载版本为centos7
docker pull python:3.6 # 下载版本为3.6
docker pull mysql:5.7 # 下载版本为5.7
2.4 镜像删除 - docker rmi/docker image rm
如果还有基于这个镜像的容器,是不允许删除镜像的,要先删除容器,再删除images
# 作用:
将本地的一个或多个镜像删除
# 命令格式:
docker rmi [OPTIONS] IMAGE [IMAGE...]
或者 docker image rm [OPTIONS] IMAGE [IMAGE...]
# 命令参数(OPTIONS):
-f, --force 强制删除
# 命令演示:
docker rmi 镜像名字/镜像id号
docker rmi e934 452a # 删除两个镜像
docker rmi `docker images -q` # 删除所有镜像
2.5 镜像保存备份 – docker save
# 作用:
将本地的一个或多个镜像打包保存成本地tar文件(输出到STDOUT)
# 命令格式:
docker save [OPTIONS] IMAGE [IMAGE...]
# 命令参数(OPTIONS):
-o, --output string 指定写入的文件名和路径
# 命令演示:
docker save -o linux_images.tar centos ubuntu
2.6 镜像备份导入 - docker load
# 作用:
将save命令打包的镜像导入本地镜像库中
# 命令格式:
docker load [OPTIONS]
# 命令参数(OPTIONS):
-i, --input string 指定要导入的文件,如没有指定,默认是STDIN
-q, --quiet 不打印导入过程信息
# 命令演示
docker load -i linux_images.tar
docker load -i linux_images.tar -q
2.7 镜像重命名 – docker tag
# 作用:
对本地镜像的NAME、TAG进行重命名,并新产生一个命名后镜像
# 命令格式:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
# 命令参数(OPTIONS):
无
# 命令演示
docker tag e934 centos-newname:newtag
2.8 镜像详细信息 – docker image inspect/docker inspect
# 作用:
查看本地一个或多个镜像的详细信息
# 命令格式:
docker image inspect [OPTIONS] IMAGE [IMAGE...]
或者 docker inspect [OPTIONS] IMAGE [IMAGE...]
# 命令参数(OPTIONS):
-f, --format string 利用特定Go语言的format格式输出结果
# 命令演示:
docker image inspect -f "{{json .id}}" centos
docker image inspect
2.9 镜像历史信息 – docker history
# 作用:
查看本地一个镜像的历史(历史分层)信息
# 命令格式:
docker history [OPTIONS] IMAGE
# 命令参数(OPTIONS):
-H, --human 将创建时间、大小进行优化打印(默认为true)
-q, --quiet 只显示镜像ID
--no-trunc 不缩略显示
# 命令演示
docker history ubuntu
docker history ubuntu -H=false
3 总结