LoginSignup
7
3

More than 3 years have passed since last update.

Docker hub からイメージを pull する時、CPUのアーキテクチャを指定する。

Last updated at Posted at 2020-06-27

Docker hub にて、イメージを選択した時に出てくる、この項目。
docker-hub-02.png

気になって調べてみたら、pull する時、イメージのCPUアーキテクチャを指定する事ができるみたいです。

参考までに、Docker のマニュアル(docker pull)が、こんな感じになってます。
https://docs.docker.com/engine/reference/commandline/pull/

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

TAG を指定する方法の他に、DIGEST を指定する方法もあるみたいです。

今回のケースの場合、DIGEST は、この部分。
docker-hub-03.png

DIGESTを指定して pull する時、こんな感じなります。

docker pull php@sha256:84311597ecddef820dfab8893acbcdc1f1b3b545decfedf791aa7b99429206df

「:」ではなく「@」を使い、「sha256~」のあたりから書き始めます。

試しに、php:7.4.7-fpm-buster の各種アーキテクチャで実験してみました。

docker-compose.yml
version: '3'
services:
  # linux/amd64
  app01:
    image: php@sha256:cf3f0f13f1726595bdee10ece07c788b54e3f491817ae1b274931d5520af2d47
  # linux/ppc64le
  app02:
    image: php@sha256:89a021692e04f3e88a574e918ecf2b620465d70f936ab9d2cd17cdf99bf8cd87
  # linux/386
  app03:
    image: php@sha256:5846a11aa9541b93c07160af0359a2650842e914f2e23a0f77c123945b0670bf
  # linux/s390x
  app04:
    image: php@sha256:250e769a4d0eb7502e7aa73d7c5151129f6a07931467ba16b4c930f2ba942d2c
  # linux/arm/v7
  app05:
    image: php@sha256:84311597ecddef820dfab8893acbcdc1f1b3b545decfedf791aa7b99429206df
  # linux/arm64/v8
  app06:
    image: php@sha256:a8a5be3677f3e25dde3cb9b528535b8493d9c4a4e99b7a56d622e5638c7c307b
  # linux/arm/v5
  app07:
    image: php@sha256:8e95f90bba6652bb5a42291a46a17923dcadd6cabf69fda594aba1be2a9b6555

以下、コンテナの中に入って、arch コマンドでアーキテクチャを出力した時の内容です。

#linux/amd64
x86_64

# linux/ppc64le
ppc64le

# linux/386
x86_64

# linux/s390x
s390x

# linux/arm/v7
armv7l

# linux/arm64/v8
aarch64

# linux/arm/v5
armv7l

マニュアルを読んでも、DIGEST は、「イメージの一意の値を表すもの」という表現しかなく、CPU については触れていないので、ちょっと分かりづらい気がする。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3