介绍

Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。

image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不是从零开始制作。

查看镜像

$ docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS:
    1. -a          :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
    2. --digests   :显示镜像的摘要信息
    3. -f|--filter :显示满足条件的镜像
        * dangling=true :显示所有虚悬镜像
        * sinse=php:7.2 :显示所有在php:7.2之后获取的镜像
        * ...
    4. --format    :以指定格式显示列表
REPOSITORY:
    要查看的镜像仓库源
TAG:
    要查看的镜像tag,默认为latest

示例:

$ docker images
REPOSITORY            TAG           IMAGE ID        CREATED         SIZE
docker_nginx          latest        58a36e1f27e0    14 hours ago    109MB
<none>                <none>        21f4fd3d028f    14 hours ago    109MB
docker_php-fpm        latest        1b52d1a076c9    27 hours ago    369MB

REPOSITORY:表示仓库源
TAG:
    镜像的标签,同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本
    如ubuntu仓库源里,有15.1014.04等多个不同的版本
    我们使用 REPOSITORY:TAG 或镜像id来唯一标识镜像
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小

虚悬镜像

有时候会看到示例中那样,会出现镜像名称和tag都为none的镜像,这种镜像是虚悬镜像,会在镜像更新或rebuild的时候出现,一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,之后会在搭建环境中详细说明。

删除虚悬镜像

$ docker image prune

查看虚悬镜像

docker image ls -f dangling=true

查询镜像

$ docker search [OPTIONS] IMAGE_NAME

OPTIONS:
    1. automated  :只列出 automated build类型的镜像;
    2. --no-trunc :显示完整的镜像描述;
    3. -s number  :列出收藏数不小于number的镜像。

IMAGE_NAME:
    要查找的镜像名称

示例:

$ docker search -s 100 php
NAME                      DESCRIPTION                                     STARS     OFFICIAL     AUTOMATED
php                       While designed for web development, the PHP …   3228      [OK]         
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable of536                    [OK]
phpmyadmin/phpmyadmin     A web interface for MySQL and MariaDB.          492                    [OK]
eboraas/apache-php        PHP5 on Apache (with SSL support), built on136                    [OK]
php-zendserver            Zend Server - the integrated PHP application135       [OK]           

获取镜像

$ docker pull [OPTIONS] NAME[:TAG]

OPTIONS
    1. -a                      :拉取所有 tagged 镜像
    2. --disable-content-trust :忽略镜像的校验,默认开启
NAME[:TAG]
    要拉取的镜像名称,tag可省略,省略则默认为latest
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐