2.1 docker镜像与容器的联系、存储驱动
什么是镜像?简单说,docker镜像是一个不包含Linux内核而又精简的Linux操作系统。
镜像从哪里来?Docker hub是由docker公司负责维护的公共注册中心,包含了大量的容器镜像,docker工具默认从这个公共镜像库下载镜像:
https://hub.docker.com/explore
默认是国外的源,下载会慢,建议配置国内镜像仓库:
[[email protected] ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
配置完成后重启docker:[[email protected] ~]# systemctl restart docker
重启完成后我们可以先下载个docker镜像尝试一下:
[[email protected] ~]# docker pull nginx
我们利用docker pull命令已经完成nginx镜像的下载,接下来我们用docker images来查看下我们已经下载的镜像:
[[email protected] ~]# docker images
如果我们需要下载一个nginx1.12版本的镜像,那么我们可以执行如下命令来完成:
[[email protected] ~]# docker pull nginx:1.12
接下来我们验证是不是下载了nginx1.12版本的镜像:
[[email protected] ~]# docker images
镜像与容器的联系:
镜像不是一个单一的文件,而是有多层构成。我们可以通过docker history<ID/NAME>查看镜像中各层内容及大小,每层对应着dockerfile中的一条指令。Centos的Docker镜像默认存储在/var/lib/docker/overlay2中。
[[email protected] overlay2]# docker history nginx
容器其实实在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。如果容器删除了,最上面的读写层也就删除了,改动也就丢失了。Docker使用存储驱动管理镜像每层内容及可读写的容器层。
存储驱动:
原文地址:https://blog.51cto.com/13908858/2432326