镜像相关命令 ¶
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 search ¶
搜索镜像
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)