目次
docker pull コマンド入門:イメージのダウンロード(--platform、-q、digest の指定)
docker pull はイメージレジストリからイメージをダウンロードします。イメージとタグの概念についてはイメージを参照してください。
構文
docker pull [オプション] 名前[:タグ|@digest]
オプション
| オプション | 説明 |
|---|---|
-a, --all-tags | リポジトリにあるタグ付きイメージをすべてダウンロードします |
--platform 文字列 | サーバーがマルチプラットフォームに対応している場合、ダウンロードするプラットフォームを指定します |
-q, --quiet | 詳細な出力を非表示にします |
例
イメージをダウンロードして再度 pull する
$ docker pull alpine:3.23
3.23: Pulling from library/alpine
5e9b4a97f639: Pulling fs layer
5e9b4a97f639: Download complete
97ab9557f126: Download complete
79dff55e92ba: Download complete
5e9b4a97f639: Pull complete
Digest: sha256:ff7f0c727dd796aa36787bfcd9a64bf35a6ce72a73451b3359fde849b6703d63
Status: Downloaded newer image for alpine:3.23
docker.io/library/alpine:3.23
$ docker pull alpine:3.23
3.23: Pulling from library/alpine
Digest: sha256:ff7f0c727dd796aa36787bfcd9a64bf35a6ce72a73451b3359fde849b6703d63
Status: Image is up to date for alpine:3.23
docker.io/library/alpine:3.23
- 初回の pull では、レイヤーのダウンロード状況、digest、および
Downloaded newer imageという状態が表示されます。 - 再度 pull すると、digest は同じで
Image is up to dateと表示され、レイヤーのダウンロード状況は再表示されません。 - registry を指定しない場合、出力される完全な名前は
docker.io/library/alpine:3.23です。
quiet モードと存在しない tag
$ docker pull -q redis:8-alpine
docker.io/library/redis:8-alpine
$ docker pull nginx:9.99
Error response from daemon: failed to resolve reference "docker.io/library/nginx:9.99": docker.io/library/nginx:9.99: not found
-qはダウンロードの進行状況などの詳細な出力を非表示にします。例ではイメージの完全な名前だけが出力されます。- tag
9.99が見つからない場合、daemon はnot foundを返し、解決できなかった完全なイメージ参照を示します。
プラットフォームを指定してバリエーションを確認する
$ docker pull --platform linux/arm64 alpine:3.23
3.23: Pulling from library/alpine
197a036d7c64: Pulling fs layer
197a036d7c64: Download complete
4f0cdf9143b4: Download complete
8b7a0920489a: Download complete
197a036d7c64: Pull complete
Digest: sha256:ff7f0c727dd796aa36787bfcd9a64bf35a6ce72a73451b3359fde849b6703d63
Status: Image is up to date for alpine:3.23
docker.io/library/alpine:3.23
$ docker image inspect -f '{{.Os}}/{{.Architecture}}' alpine:3.23
linux/amd64
$ docker images --tree alpine:3.23
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
alpine:3.23 ff7f0c727dd7 26.6MB 8.21MB
├─ linux/amd64 3d67941fed5a 12.9MB 3.85MB
├─ linux/arm/v6 806bbcf86639 0B 0B
├─ linux/arm/v7 b43a13ac240c 0B 0B
├─ linux/arm64/v8 8793abc47938 13.5MB 4.19MB
├─ linux/386 7811c228ca81 0B 0B
├─ linux/ppc64le cc3ef1f3240a 0B 0B
├─ linux/riscv64 1e12543f1917 0B 0B
└─ linux/s390x ac74ebe0c48b 0B 0B
--platform linux/arm64で arm64 版のレイヤーをダウンロードしましたが、状態はImage is up to dateのままです。alpine:3.23はマルチプラットフォームイメージで、名前と digest は変わらず、ローカルに別のプラットフォームの内容が追加されただけです。- そのため、
docker image inspectにはデフォルトでローカルのプラットフォームlinux/amd64が表示されます。別のプラットフォームを確認するには、次のdocker images --treeを使います。 docker images --treeは amd64 や arm64/v8 などのプラットフォームバリエーションを一覧表示します。この例では arm64/v8 のディスク使用量は13.5MBです。
digest でイメージのバージョンを固定する
$ docker pull alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0
docker.io/library/alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0: Pulling from library/alpine
d0c1d894c237: Pulling fs layer
d0c1d894c237: Download complete
d836c7fd48f4: Download complete
047d62850641: Download complete
d0c1d894c237: Pull complete
Digest: sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0
Status: Downloaded newer image for alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0
docker.io/library/alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0
$ docker images alpine
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
alpine:3.23 ff7f0c727dd7 26.6MB 8.21MB
alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0 85fe1e81d675 13MB 3.94MB
- イメージ名の後に
@sha256:と digest を付けると、変動する tag ではなく digest でイメージを指定できます。 - 出力の
Digestは指定した digest と同じで、状態はDownloaded newer imageです。 docker images alpineにはalpine:3.23と digest 形式の参照が両方表示され、ID は異なります。この digest は以前の 3.23 版を指しており、その後3.23tag はより新しいビルドを指すようになりました。digest でバージョンを固定する理由はここにあります。tag は移動しますが、digest は変わりません。
関連する章
練習問題
練習:digest を使って課題の Alpine イメージを pull し、ローカルの Alpine イメージ一覧を確認してください。
解答
docker pull alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0
docker images alpine
よくある質問
docker pull を繰り返すとイメージは再ダウンロードされますか?
イメージが最新の場合、出力には Image is up to date と表示されます。例では digest とイメージ参照も初回のダウンロード時と同じです。
ダウンロードするイメージのバージョンを固定するにはどうすればよいですか?
イメージ名の後に @sha256: と digest を指定します。例:alpine@sha256:85fe1e81d6758c208f3e1eed4338a1997e19d4be002d4dd32d3100c9a8c010a0。
tag が存在しない場合、どのようなエラーが表示されますか?
例の nginx:9.99 では not found が返され、registry がそのイメージ参照を見つけられないことを示します。
--platform を指定すると、inspect の結果にも必ずそのプラットフォームが表示されますか?
例では linux/arm64 を指定して pull した後、docker image inspect に linux/amd64 と表示されます。docker images --tree を使うと、そのイメージに含まれる複数のプラットフォームバリエーションを確認できます。
更新日 2026年10月26日