跳转至

镜像相关命令

docker images

查看所有镜像

# 标签 
REPOSITORY  镜像的仓库源
TAG         镜像的标签
IMAGE ID    镜像的ID
CREATE      镜像的创建时间
SIZE        镜像的大小
镜像命名
  • 镜像层的 ID 既可以识别每个镜像层,也可以用来直接识别镜像 ( 因为根据最上层镜像能够找出所有依赖的下层镜像,所以最上层进行的镜像层 ID 就能表示镜像的 ID ),但是使用这种无意义的超长哈希码显然是违背人性的,所以这里我们还要介绍镜像的命名,通过镜像名我们能够更容易的识别镜像
  • 在 docker images 命令打印出的内容中,我们还能看到两个与镜像命名有关的数据:REPOSITORY 和 TAG,这两者其实就组成了 docker 对镜像的命名规则
镜像命名规则

镜像的命名我们可以分成三个部分:username、repository 和 tag

  • username: 主要用于识别上传镜像的不同用户,与 GitHub 中的用户空间类似。
  • repository:主要用于识别进行的内容,形成对镜像的表意描述。
  • tag:主要用户表示镜像的版本,方便区分进行内容的不同细节

对于 username 来说,在上面我们展示的 docker images 结果中,有的镜像有 username 这个部分,而有的镜像是没有的。没有 username 这个部分的镜像,表示镜像是由 Docker 官方所维护和提供的,所以就不单独标记用户了

搜索镜像

Docker Hub

Docker-hub

  • Docker Hub 是 Docker 官方建立的中央镜像仓库,除了普通镜像仓库的功能外,它内部还有更加细致的权限管理,支持构建钩子和自动构建,并且有一套精致的 Web 操作页面。

  • Docker 的中央镜像仓库系统,同时也是 Docker Engine 的默认镜像仓库,所以 Docker Hub 是开发者共享镜像的首选。

  • 其中的镜像足够丰富常用服务软件的镜像,我们都能在 Docker Hub 中找到,甚至能找到针对它们不同用法的不同镜像。
  • Docker Hub 也允许我们将我们制作好的镜像上传到其中,与广大 Docker 用户共享你的镜像
  • 直接通过 Docker Hub 网站搜索镜像这种方式

    OFFICIAL: 代表镜像为 Docker 官方提供和维护,相对来说稳定性和安全性较高
    STARS: 代表镜像的关注人数,这类似 GitHub  Stars,可以理解为热度
    PULLS: 代表镜像被拉取的次数,基本上能够表示镜像被使用的频度
    

  • 用 docker CLI 中的 docker search 搜索 Docker Hub 中的镜像

    # 搜索镜像 docker search mysql
    NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    mysql                           MySQL is a widely used, open-source relation…   14096     [OK]       
    mariadb                         MariaDB Server is a high performing open sou…   5383      [OK]       
    percona                         Percona Server is a fork of the MySQL relati…   606       [OK]       
    phpmyadmin                      phpMyAdmin - A web interface for MySQL and M…   789       [OK]       
    

docker pull

拉取镜像

拉取过程

当我们运行这个命令后,Docker 就会开始从镜像仓库中拉取我们所指定的镜像了,在控制台中,我们可以看到镜像拉取的进度。下载进度会分为几行,其实每一行代表的就是一个镜像层。Docker 首先会拉取镜像所基于的所有镜像层,之后再单独拉取每一个镜像层并组合成这个镜像。当然,如果在本地已经存在相同的镜像层 ( 共享于其他的镜像 ),那么 Docker 就直接略过这个镜像层的拉取而直接采用本地的内容

# 下载镜像 docker pull 镜像名[:tag]

# 默认拉取,tag 默认是 latest,分层下载
docker pull mysql  等价于 docker pull mysql:latest

# 指定版本下载
docker pull mysql:5.7

docker inspect

对镜像的管理要比搜索和获取镜像更常用

# 获得镜像更详细的信息
docker inspect mysql:5.7

docker rmi

删除镜像

# 删除指定镜像
docker rmi -f 镜像ID

# 删除指定的多个镜像
docker rmi -f 镜像ID 镜像ID 镜像ID 

# 删除所有的镜像
docker rmi -f $(docker images -aq)