Docker:docker 拉取镜像及查看pull下来的image在哪里

时间:2024-03-15 13:33:06

一:拉取镜像
1、国内连接docker官网很慢修改docker中配置,添加对应中国docker加速器。

vi  /etc/docker/daemon.json
{
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "live-restore": true
}

2、运行以下命令(本处以hello-world为例),将image文件从仓库拉去到本地。

docker pull library/hello-world
其中拉去命令为docker pull。hello-world为image为名称,library为hello-world镜像所在组。

执行完成后执行docker images可以查询。

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              4ab4c602aa5e        2 months ago        1.84kB
ubuntu              15.10               9b9cb95443b5        2 years ago         137MB
3、运行拉去成功的image,docker run XXX

docker run hello-world
 

Hello from Docker!
This message shows that your installation appears to be working correctly.
hello-world运行完成后会自动关闭,类似myssql这样的服务类image运行后不会自动关闭。可以执行docker stop imageName停止。

二、查看iamge位置

镜像位置
此处有坑: 以下操作必须在 root 用户权限下进行!!!(如有不知如何进行切换的童鞋,请先翻到最后面~)

进入docker 目录
cd /var/lib/docker
1.文件结构如下:

Docker:docker 拉取镜像及查看pull下来的image在哪里

2. 进入containers 目录

    这个目录中保存是已拉取的容器ID,即一个***,对应一个容器。

Docker:docker 拉取镜像及查看pull下来的image在哪里

    随便进入选择一个***,进入后发现容器的具体结构如下:

Docker:docker 拉取镜像及查看pull下来的image在哪里

3. 进入image 目录

     这个目录中保存的是已拉取的镜像的信息。在下图中可以看到images目录下有个overlay2目录,该目录下中repositories.json 文件详细记录了拉取的镜像的详细信息:有 镜像名、镜像ID等。(注: 比较老的docker版本下可能没有 overlay2 目录,而是 aufs 目录,在 aufs 目录中同样有形同的目录及文件)

Docker:docker 拉取镜像及查看pull下来的image在哪里

作为对比,下面直接使用 docker命令展示镜像信息:

docker image ls
Docker:docker 拉取镜像及查看pull下来的image在哪里

可以看到上面 repositories.json 文件中记录的就是已拉取的镜像信息。