コマンド一覧(イメージ管理編)

docker image COMMAND の形式でイメージ管理するためのコマンドを実行できます。
ここでは、Dockerイメージの管理に必要なコマンドの利用方法について解説します。

docker imageの使い方

docker image と入力すると利用できるコマンド一覧を確認できます。

$ docker image

Usage:  docker image COMMAND

Manage images

Commands:
  build       Build an image from a Dockerfile
  history     Show the history of an image
  import      Import the contents from a tarball to create a filesystem image
  inspect     Display detailed information on one or more images
  load        Load an image from a tar archive or STDIN
  ls          List images
  prune       Remove unused images
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rm          Remove one or more images
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

Run 'docker image COMMAND --help' for more information on a command.

docker image で利用できる主なコマンドについて紹介します。

build|イメージ構築

Dockerfile から Dockerイメージ を作成します。

$ docker image build -t xxxx/xxxx:latest .

上記例では以下のことを行っています。

  • カレントディレクトリに存在する Dockerfile からイメージを生成しています。
  • xxxx/xxxx という イメージ名 を指定しています。
  • latest という タグ を指定しています。

history|イメージ履歴表示

イメージの更新履歴を確認できます。

$ docker image history xxxx/sample 
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
405c0c2128b0        About an hour ago   /bin/sh -c #(nop)  CMD ["/usr/sbin/httpd" "-…   0B                  
663d23b0e382        About an hour ago   /bin/sh -c #(nop)  EXPOSE 80                    0B                  
54494df97f03        About an hour ago   /bin/sh -c #(nop) ADD file:44be4544761aa0761…   6B                  
63705b954430        About an hour ago   /bin/sh -c sed -i '/#ServerName/a ServerName…   11.8kB              
4f1edd78b3da        About an hour ago   /bin/sh -c yum -y install httpd                 126MB               
0975764fc064        About an hour ago   /bin/sh -c echo "now building..."               0B                  
5182e96772bf        5 weeks ago         /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop) ADD file:6340c690b08865d7e…   200MB   

inspect|イメージ詳細表示

イメージの詳細情報を確認できます。

$ docker image inspect xxxx/sample 
[
    {
        "Id": "sha256:405c0c2128b01cac3f107e1ab1046d3bf7f14f35dd30a643cca9c450d28cb76c",
        "RepoTags": [
            "xxxx/sample:latest"
        ],
    (省略)

ls|イメージ一覧表示

作成されたイメージ一覧を確認できます。

$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
xxxx/sample         latest              405c0c2128b0        About an hour ago   326MB
centos              7                   5182e96772bf        5 weeks ago         200MB

pull|レジストリからイメージを取得

以下例では、Docker Hubから ubuntu:18.04 のイメージを取得しています。

$ docker image pull ubuntu:18.04
18.04: Pulling from library/ubuntu
124c757242f8: Pull complete 
2ebc019eb4e2: Pull complete 
dac0825f7ffb: Pull complete 
82b0bb65d1bf: Pull complete 
ef3b655c7f88: Pull complete 
Digest: sha256:72f832c6184b55569be1cd9043e4a80055d55873417ea792d989441f207dd2c7
Status: Downloaded newer image for ubuntu:18.04

push|レジストリにイメージを送信

docker push イメージ名

rm|イメージ削除

イメージを削除できます。
コンテナが使っていないイメージをすべて削除するには、以下のようにします。

docker image rm $(docker image ls -q)

prune|使用していないイメージ削除

コンテナが使っていないイメージをすべて削除できます。
Docker1.13以降 で利用できます。

$ docker image prune

tag|タグを付ける

新しくタグを付けることができます。

$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
xxxx/sample         latest              405c0c2128b0        2 hours ago         326MB
centos              7                   5182e96772bf        5 weeks ago         200MB
$
$ docker tag 405c0c2128b0 yyyy/sample:latest
$
$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
xxxx/sample         latest              405c0c2128b0        2 hours ago         326MB
yyyy/sample         latest              405c0c2128b0        2 hours ago         326MB
centos              7                   5182e96772bf        5 weeks ago         200MB