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のところにはタグの名前を入力してください。
終わり!