(最終更新月:2023年8月)
✔当記事が対象とするのは以下のような方です
「docker pullの使用方法がわからない」
「docker pullコマンドの書式を知りたい」
「docker pullコマンドの具体的な実行例を見たいと思っている方」
✔当記事でお伝えすること
- docker pullコマンドの基本
- docker pullコマンドの適切な記述方法
- docker pullコマンドを使った具体例
当記事では、docker pullコマンドの基本の解説からオプションの活用方法に至るまで、具体的な実例を通じて順を追って解説していきます。
ぜひ最後までお読みください。
Docker Pullの基本文法
こちらでは、「Docker Pull」の基本文法について説明します。
docker pullは、Dockerコマンドの中でも頻繁に使われるもののひとつです。
- docker pullとは
- コマンドのフォーマット
- docker pullの主要オプション
- 基本的なコマンドの使用例
Docker Pullとは
Docker Pullとは、指定したDockerイメージをDocker Hubやそのほかのレジストリからローカル環境へダウンロードするコマンド。
ひとつのコマンドで、特定のソフトウェア環境を手元に用意できます。
docker pull ubuntu
Ubuntuの最新版のDockerイメージを取得します。
コマンドのフォーマット
Docker Pullコマンドの基本的なフォーマットはこちら。
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
構文要素の説明です。
NAME
:イメージの名前TAG
はバージョンDIGEST
:特定のイメージのハッシュ値
docker pullの主要オプション
Docker Pullコマンドにはいくつかのオプションがあります。
代表的なものは以下のとおりです。
-a, --all-tags
: イメージの全てのタグを一度にダウンロード--platform
: 特定のプラットフォーム用のイメージをダウンロード
基本的なコマンドの使用例
基本的な使用例を見てみましょう。
以下のコマンドは、Ubuntuのイメージをダウンロードします。
docker pull ubuntu
また、特定のバージョンを指定してダウンロードする場合は、以下のようにタグを使用します。
docker pull ubuntu:18.04
オフィシャルイメージは、以下のようなHubで検索し、ダウンロードしてください。
Docker Pullの深掘り:補足情報
こちらでは、「Docker Pull」の補足情報について説明します。
プロキシの設定や並列ダウンロードの解説など、基本的な使い方を超えた詳細な情報をご覧ください。
- プロキシの設定方法
- 並列ダウンロードの解説
プロキシの設定方法
Docker Pullによるイメージnoダウンロードで、プロキシを設定する場合、以下のように設定してください。
/etc/docker/daemon.json
{
"HTTP_PROXY": "http://proxy.example.com:80/",
"HTTPS_PROXY": "https://proxy.example.com:443/",
"NO_PROXY": "*.test.example.com,.example2.com"
}
Dockerの設定ファイルに、HTTP_PROXY
, HTTPS_PROXY
, NO_PROXY
などの環境変数を設定。
設定後、Dockerデーモンの再起動で、設定が反映されます。
並列ダウンロードの解説
Docker Pullはデフォルトで、イメージの各レイヤーを並列にダウンロードします。
これにより大きなイメージでも、高速にダウンロードが可能です。
ただしこの並列ダウンロードは、ネットワーク帯域を大量に使用するため、環境によってはこの設定を調整してください。
イメージの取得方法と活用
こちらでは、Dockerイメージの取得方法とその活用について詳しく説明します。
- DockerHubからのイメージの取得
- ダイジェストを使用したイメージの取得
- 異なるレジストリからのイメージの取得
- 特定リポジトリから複数の
DockerHubからのイメージの取得
DockerHubは、Dockerの公式レジストリで、多くの公開イメージがホストされている場所。
基本的なdocker pull
コマンドを使うことで、DockerHubからイメージを取得できます。
以下は、Nginxの公開イメージを取得する例です。
docker pull nginx
ダイジェストを使用したイメージの取得
Dockerイメージは、その内容を一意に識別するハッシュ値(ダイジェスト)を持ちます。
このダイジェストを使用して特定のイメージを取得することも可能です。
以下に、ダイジェストを指定してイメージを取得する例を示します。
docker pull nginx@sha256:646614e1310895e26cfb8e82640f2f6640a795c8fd6509c44311406c9a0ef25e
ハッシュ値とは、ある特定のアルゴリズムで計算されたランダム(に見える)文字列。ここでは詳しく説明しませんが、ランダムな文字列がそのイメージ特有の名前になっていることを覚えておきましょう。
異なるレジストリからのイメージの取得
Dockerイメージは、DockerHubだけでなく、ほかのレジストリにもホストされることがあります。
以下はその一部です。
- Amazon ECR,
- Google Container Registry
これらのレジストリからイメージを取得する場合、レジストリのURLをイメージ名にプレフィックスとして追加します。
以下ha
以下は、Amazon ECRからイメージを取得する例です。
docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-web-app:latest
特定リポジトリから複数のイメージの取得
特定のリポジトリから複数のイメージを一度に取得することも可能です。
その場合、-a
または--all-tags
オプションを使用します。
以下は、Ubuntuの全てのタグのイメージを取得する例です。
docker pull -a ubuntu
中断時の対処法と親コマンド
こちらでは、Docker Pull
の操作中に何らかの問題が発生した場合の対処法と親コマンドについて説明します。
- Docker pullの取得を中止したときの処理方法
- Docker pullの親コマンドについて
Docker pullの取得を中止したときの処理方法
Docker pullの操作を途中で中止した場合の動作は以下のとおり。
イメージのダウンロードが中断されても、既にダウンロードされたレイヤーは保存される
再度同じイメージをpullすると、最初からではなく中断した地点からダウンロードが再開されます。
Docker pullの親コマンドについての説明
docker pull
は、Dockerの親コマンドであるdocker
の子コマンドのひとつです。
ほかの子コマンドには、以下のようなものがあります。
- docker build:イメージのビルド
- docker run:コンテナの起動
- docker stop:コンテナの停止
これらのコマンドはdocker pull
と組み合わせて使用され、Dockerを使用した開発や運用における重要なツールです。
まとめ
当記事の内容をまとめます。
docker pull
コマンドは、イメージを外部からダウンロードするコマンド- オプションを使うことで、より詳細にダウンロード設定が可能
- ほかのコマンドと合わせて覚えておく必要がある
Dockerは、開発環境を統一するためにとても便利なツール。
そのなかでも、docker pullは非常に使用頻度が高いコマンドです。
いろいろと手を動かしながら、docker pullの便利さを実感して見ましょう。