プログラミングのゴミ箱

日々の学習の中で知らなかったことについて、調べたことを解説します。

Dockerのマルチ CPU アーキテクチャのサポートを使ってみた

マルチCPUアーキテクチャサポートとは?

Dockerがイメージを使用するときに、そのCPUのアーキテクチャによってインストールするイメージを変えなければいけない。
そういった面倒な作業を代わりにやってくれるのがマルチCPUアーキテクチャサポートだ。
DockerHubからpullを実行するときにCPUに合わせたイメージを自動でpullしてくれる。
では早速やっていこう。

docs.docker.jp
↑これを参考

1. buildxコマンドが使えるか確認

以下のコマンドを入力して、buildxコマンドが使えるか確認します。buildxコマンドはマルチCPUアーキテクチャサポートを利用するためのコマンドです。

$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS  PLATFORMS
default * docker
  default default         running linux/amd64, linux/arm64, linux/arm/v7, linux/arm/v6

このような画面が出たらOKです。

2. 新しいbuilderを作る。

docker buildx create --name mybuilder --use
<||
このコマンドで新たなbuilderを作り、そのbuilderを使うように設定します。
builderは様々なCPUアーキテクチャに対応したイメージを作成してくれるいいヤツです。

* 3. builderを使ってみる

>||
docker buildx inspect --bootstrap

inspectコマンドは現在のbuilderの状態を確認します。 --bootstrapを付けることでbuilderを起動できます。

4. Dockerfileの作成

$ mkdir test && cd test && cat <<EOF > Dockerfile

FROM ubuntu
RUN apt-get update && apt-get install -y curl
WORKDIR /src
COPY . .
EOF

このようなDockerfileを作成します。

5. DockerHubへpush

$ docker buildx build --platform linux/arm64,linux/amd64 -t username/demo:latest --push .

arm64とamd64の環境で動くイメージをDockerHubに送っています。usernameのところは自分のdockerHubアカウントの名前を、demoのところにはコンテナ名を、latestのところにはタグの名前を入力してください。
終わり!