镜像

基本概念

我们都知道,操作系统分为 内核 和 用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:18.04 就包含了完整的一套 Ubuntu 18.04 最小系统的 root 文件系统。
Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。

常用命令

拉取镜像

命令格式

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

拉取mysql
从dao上拉取 版本号是8.0.20的mysql的镜像

docker pull daocloud.io/library/mysql:8.0.20

docker国内镜像源 windows docker镜像系统_容器

查看镜像

命令

docker images;

docker国内镜像源 windows docker镜像系统_docker国内镜像源 windows_02

可以查看到刚刚拉取下来的mysql镜像

镜像重命名

命令

docker tag be0dbf01a0f3 mysql:8.0.20

docker国内镜像源 windows docker镜像系统_文件系统_03

可以看到将镜像的名称修改为mysql,但其image ID 其实还是一样的,所以两个其实是同一个镜像,只是名称不一样

导出本地镜像

docker save -o mysql.image be0dbf01a0f3

参数解释:

-o: output

mysql.image导出的镜像名称

be0…:需要导出的镜像id

docker国内镜像源 windows docker镜像系统_mysql_04

可以看到在docker文件夹下已有导出的docker镜像,其文件名为mysql.image

删除镜像

删除镜像之前,需要把应用该镜像的容器先停止并删除容器

命令

// docker rmi imageId
docker rmi be0dbf01a0f3 -f

docker国内镜像源 windows docker镜像系统_docker_05

执行删除命令之后,再次使用docker images 命令查看可以发现,当前已经没有mysql镜像了

docker国内镜像源 windows docker镜像系统_docker_06

导入镜像

命令

// docker load -i 镜像名称
docker load -i mysql.image

-i:表input

docker国内镜像源 windows docker镜像系统_容器_07

在当前docker文件夹目录下执行上述命令,image id和之前id是一样的,可以给这个镜像重命名和设置tag

docker国内镜像源 windows docker镜像系统_docker国内镜像源 windows_08

查看历史

命令

docker history imageId

docker国内镜像源 windows docker镜像系统_mysql_09