docker pullコマンドの使い方(実例付)CE対応


 docker pullコマンドの使い方の紹介ページです。Docker CE ver17.12.1に対応しております。

 このコマンドは、Dockerイメージを共有可能な格納先であるレジストリから、特定のDockerイメージを入手する際に使用します。

 レジストリは、Docker公式のレジストリであるDocker Hubが有名ですが、ローカルネットワーク内に自分用のプライベートなレジストリを作成することも可能です。

 それでは以下で詳細に解説いたします。

 

docker pullコマンドのフォーマットとオプション

フォーマット

docker pull [オプション] [Dockerイメージ名 | レジストリホスト/Dockerイメージ名 ]

 

主なオプション一覧

-a, --all-tags=[ true | false ] 
指定したリポジトリ名のDockerイメージを全て入手する(タグ名は任意)

--disable-content-trust=[ true | false ] 
Dockerイメージ入手時の認証を行わない(true指定時:デフォルトはtrue)

■ 本記事の目次に戻る ■

docker pullコマンドの主な使い方

 

Docker公式レジストリからDockerイメージを入手する

 以下のコマンドを実行しますと、Docker公式レジストリ内のCentOSのDockerイメージの最新版を入手することが出来ます。

$ docker pull centos

 コマンドを実行しますと、以下のような内容が出力されます。

Using default tag: latest
latest: Pulling from library/centos

08d48e6f1cff: Pull complete
Digest: sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c
Status: Downloaded newer image for centos:latest

 docker pullコマンドは、Dockerイメージ名のみを指定した場合は、デフォルトでDocker公式レジストリに接続します。後述しますが、他のレジストリに接続することも可能です。

 Dockerイメージ名を指定する際にタグ名を省略すると、「latest」タグが使われます。CentOSの最新版はイメージレイヤが1つでしたが、複数レイヤが存在する場合は「Pull complete」の行が複数出力されます。

※イメージレイヤについては別記事「Dockerイメージに関するもう少し詳しい説明」で解説しております。

 

 「Digest:」部分の長い文字列は、入手したDockerイメージを示すダイジェストで、そのDockerイメージに付けられた普遍的な識別子です。

 docker imagesコマンドにて、入手したCentOSイメージを確認します。

$ docker images
REPOSITORY  TAG     IMAGE ID      CREATED      SIZE
centos      latest  0584b3d2cf6d  4 weeks ago  196.5 MB

 ローカルのDockerイメージ格納先にCentOSイメージが格納されていることが確認できました。

■ 本記事の目次に戻る ■

Dockerイメージのダイジェストを使用してイメージを取得する

 通常、最新版のDockerイメージにはlatestタグが付けられます。よって、latestタグを付けることによって、特にバージョンを意識せず常に最新版を入手することが可能です。

 しかし場合によっては、ある特定のDockerイメージを指定して入手したい場合があると思います。例えば、動作が確認出来ているDockerイメージを確実に使用したい場合などです。

 Dockerイメージがバージョンアップした場合、最新のDockerイメージにlatestタグを付与し、古いものには別のタグを付与することがよくあります。

 このような場合でも、確実に特定のDockerイメージを入手するには、前項で説明したダイジェストを使用します。

 特定のDockerイメージに付与されているダイジェストを調べる方法として一番簡単なのは、そのDockerイメージを入手することです。

 前項でCentOSイメージを入手した際に、以下のダイジェストが表示されてました。

Digest:sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c

 このダイジェストを使用して、再度CentOSを入手してみます。入手する前に現在のCentOS:latestを削除します。

$ docker rmi centos:latest

 ではダイジェストを使用してCentOSイメージを入手してみます。タグ名の代わりにダイジェストを指定して実行します。

$ docker pull centos@sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c

 docker imagesコマンドで確認します。

$ docker images
REPOSITORY   TAG     IMAGE ID      CREATED      SIZE
centos       <none>  0584b3d2cf6d  4 weeks ago  196.5 MB

 ダイジェストを使用してDockerイメージを入手した場合はタグ名が付きませんので、docker tagコマンドでタグを設定します。対象のDockerイメージを指定する部分にはイメージIDを指定してください。

 試しにタグ名latestを付けます。

$ docker tag 0584b3d2cf6d centos:latest

 docker imagesコマンドで確認します。

$ docker images
REPOSITORY  TAG     IMAGE ID      CREATED      SIZE
centos      latest  0584b3d2cf6d  4 weeks ago  196.5 MB

■ 本記事の目次に戻る ■

レジストリサーバを指定してDockerイメージを取得する

 docker pullコマンドは、Dockerイメージのみを指定した場合は、Docker HubからDockerイメージを取得します。

 冒頭でも書きましたが、Docker Hubのようなレジストリは、自前のサーバ上にも構築することが可能です。Docker社がレジストリ用のDockerイメージを提供してまして、比較的容易に構築できます。

 自前でレジストリを用意する件につきましては、別記事でご紹介する予定でして、本記事では省かせていただきます。申し訳ございません。

 ここでは、レジストリサーバの名前をtestvm、公開ポート番号を5000番とします。このレジストリ内にmyimage01:v1.0というDockerイメージが格納されているとします。

 このDockerイメージを取得するには、以下のコマンドを実行します。

$ docker pull testvm:5000/myimage01:v1.0

 正常に取得が完了した場合は、以下のような内容が出力されます。

v1.0: Pulling from myimage01
08d48e6f1cff: Pull complete
Digest: sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c
Status: Downloaded newer image for testvm:5000/myimage01:v1.0

 イメージIDやダイジェストは取得するDockerイメージによって異なりますのでご注意ください。

■ 本記事の目次に戻る ■

特定のリポジトリの全Dockerイメージを取得する

 Docker Hub内のDockerイメージを指定する場合は、「リポジトリ名:タグ名」という形式で指定するとお話ししました。通常リポジトリ名部分には、Linuxのディストリビューション名(CentOS、Ubuntu等)や、製品名(mysql、nginx等)などが使われます。

 docker pullコマンドは、デフォルトでは、Dockerイメージ名で指定した単一のDockerイメージを取得します。しかし、場合によっては、特定の製品の全Dockerイメージを入手したい場合があるかもしれません。

 その場合は、オプションとして「-a」(若しくは--all-tags)を付け、リポジトリ名を指定してdocker pullコマンドを実行することで実現できます。

 例えば、Linuxのディストリビューションのfedoraの全Dockerイメージを入手する場合は、以下のコマンドを実行します。

$ docker pull -a centos

 fedoraの全Dockerイメージは、9個ありまして(2016.12現在)、私のネットワーク環境では、全部取得するのに10分ほど掛かりました。docker pullコマンドの実行過程の出力内容は、大量なので割愛させてください。

 取得したdockerイメージをdocker imagesコマンドで確認します

$ docker images
REPOSITORY  TAG     IMAGE ID      CREATED       SIZE
centos      latest  2d194b392dd1  2 weeks ago   195MB
centos      6.6     3d7ac13b921a  4 months ago  203MB
centos      6.7     000c5746fa52  4 months ago  191MB
centos      5.11    b424fba01172  18 months ago 284MB
centos      5       1ae98b2c895d  18 months ago 285MB

 

  以上でdocker pullコマンドの紹介を終わります。

 ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。

 他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerのコマンドの一覧(ver1.12対応版)(オリジナルな実例付き)」をご参照ください。

 ご訪問ありがとうございました!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です