docker镜像可以理解成由分层的文件叠加形成,最底层是bootfs,即引导文件系统,相当于引导容器运行的必备内容,上一层是基础镜像,即rootfs,一般是指定该镜像的操作系统(Ubuntu,Debian,Centos等),其上一直到最顶上的一层称为父镜像,最顶上的一层称为可写容器。 docker镜像在运行的时候直接使用docker宿主机器的kernel。
docker镜像是放在docker仓库中的,docker镜像仓库分两类,一类是用户仓库,还有一类是顶层仓库,用户仓库的镜像都是由用户创建的,顶层仓库的镜像是由内部人员负责的
可写层即我们所说的容器层,而只读层即镜像层,在docker运行时,只运行docker的镜像层,然后新建一个空的容器层,对容器的任何操作,都是在可写层进行的,且当文件系统发生变化时,也会应用到该层,因为dokcer采用的是写时复制的机制,所以只有当文件系统变化时,才会复制制度层的内容到只读层,然后对其进行修改,从而大大的节省了docker的空间,且docker镜像是使用的docker的内核,因此也大大的降低了docker镜像的大小
因为docker镜像是保存在docker镜像仓库中的,以便需要时方便查询、下载、上传等操作
#1.查看本地的docker镜像 [root@docker-learning-centos7 /]# docker images #2.查看某个镜像的详细信息 [root@docker-learning-centos7 ~]# docker inspect 9140108b62dc #2.查询仓库中有哪些mysql的docker镜像 [root@docker-learning-centos7 /]# docker search mysql #3.从仓库中下载/下拉指定的镜像,如果不指定版本,则默认是下载最新版本 [root@docker-learning-centos7 /]# docker pull mysql #4.指定docker镜像的下载版本 [root@docker-learning-centos7 /]# docker pull mysql:5.7该操作的目的是为了提高docker镜像下载速度,类似于linux中更换yum源。因为国内连接docker官网很慢,因此建议修改docker配置,添加中国docker加速器 具体操作如下::
[root@docker-learning-centos7 docker]# vim /etc/docker/daemon.json添加如下内容:
{ "registry-mirrors": ["https://registry.docker-cn.com","https://nrbewqda.mirror.aliyuncs.com","https://dmmxhzvq.mirror.aliyuncs.com"] }然后重启docker服务
[root@docker-learning-centos7 docker]# service docker restart1.docker容器的存放位置/etc/lib/docker/containers,可以看到下图中docker 容器中的进程所对应的ID就是该目录下面的文件名的前缀
2.docker pull下拉镜像的存放位置/var/lib/docker/image/overlay2/imagedb/content/sha256
1.使用docker exec进入容器报错 Error response from daemon: Container 0f4a1744b236992573efe71f59952a1e5d19c208d494573c5e5d54c578d83b3a is not running 这是因为该容器已经停止了,exec是以交互式的方式进入一个正在运行的容器,需要先docker restart重新启动容器,然后再进入 2.正在运行的容器不能删除 3.容器使用的镜像不能被删除,只能删除容器之后,确保该镜像没有被使用,才能被删除 4.docker run命令时,若使用的镜像在本地,则会直接使用本地的镜像,不会从docker仓库去拉取,若本地没有,则会自动去docker仓库拉取