LoginSignup
1
4

M1 Macユーザー必見!Docker利用時の注意点まとめ

Posted at

はじめに

M1 Macを使っていると、たまに「あれ、Dockerファイルを作成する時どこにplatformを定義するんだっけ??」とわからなくなることがあるので、忘れないようにこちらにまとめておきます。

今回はイメージごとにどのplatformを選択できるのか、Dockerファイルの指定方法、docker-composeを利用する場合の指定方法について記載します。

Platformの選択

ベースのイメージは基本DockerHubから取得される方が多いと思いますので、DockerHubを利用することを前提に話を進めます。
DockerHubでは、イメージが対応するアーキテクチャがに公開されています。
例えばpythonのイメージだと、以下のようにサポートされているアーキテクチャ一覧が確認できます。

python.png

ARM64やx86-64とあります。こちらを見ると対応するアーキテクチャがわかるので、
これを見てどのアーキテクチャが利用できるか事前に確認しておく必要があります。

Dockerfileでplatformを指定する

利用できるアーキテクチャがわかったら、実際にDockerファイルにplatformを指定します。

FROMのinstructionに--platformオプションをつけてアーキテクチャを指定することができます。

FROM --platform=linux/amd64 python:3.9.16

WORKDIR /app
# x86_64

CLIを利用する場合も同様です。

docker run -it --platform=linux/amd64 python:3.9.16 

# x86_64

Docker Composeでplatformを指定する

DockerComposeの場合は、compose.ymlに以下のように指定します。

version: '3'
services:
  mysql:
    image: python:3.9.16
    platform: linux/amd64
    working_dir: /app
    ports:
      - 5000:5000

さいごに

今回はAppleSiliconのチップ(M1, M2)が搭載されたMacでDockerを利用する際にplatformの指定方法について紹介しました。
アーキテクチャは意外と忘れやすいので、利用前にサポートするアーキテクチャを調べておくことが重要かと思います。

参考

1
4
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
1
4