😴

M1/M2対応 Docker+Python開発環境構築手順

2024/11/28に公開

あいさつ

こんにちは。
最近Python勉強しようかなと密かに企んでるのですが、M1MacBookProでpyenvで開発環境を構築しようとしたけど詰まってできなかったので、もういっそ仮想環境作るかってことでそのやり方をまとめました。

正確じゃない内容もあったりすると思うから参考程度に使ってください。

M1/M2 MacBookでDockerを使ったPython環境構築手順

1. Dockerのインストール

手順

1.Docker Desktopをダウンロード
•公式サイトからDocker Desktopをダウンロードしインストール。
 •M1/M2 Mac対応版を選択してください。
2.Docker Desktopを起動
 •アプリケーションフォルダからDocker Desktopを起動。
 •メニューバーにDockerのアイコンが表示され緑色になっていれば起動完了。
3.動作確認
 •ターミナルで以下を実行

docker --version

•Dockerのバージョン情報が表示されればインストール完了。

2. Dockerプロジェクトの作成

手順
1.プロジェクトフォルダの作成

mkdir my-python-app
cd my-python-app

2.Dockerfileの作成

touch Dockerfile

•Dockerfileに以下の内容を記述:

# ベースイメージを指定
FROM python:3.11-alpine

# 作業ディレクトリを設定
WORKDIR /app

# 必要なライブラリをインストール
RUN apk add --no-cache gcc musl-dev libffi-dev

# デフォルトでPythonインタラクティブシェルを開く
CMD ["python3"]

3.docker-compose.yml(オプション)
 •必要に応じて以下の内容でdocker-compose.ymlを作成:

version: '3.9'
services:
  python:
    build:
      context: .
    container_name: python-container
    volumes:
      - .:/app
    stdin_open: true
    tty: true

3. Dockerイメージのビルド

手順
1.イメージをビルド

docker build -t my-python-image .

•my-python-imageという名前のDockerイメージが作成されます。

2.ビルド確認

docker images

•my-python-imageが一覧に表示されれば成功。

4. Dockerコンテナの起動

手順
1.コンテナを起動

docker run -it --name my-python-container my-python-image

•Pythonインタラクティブシェルが起動します:

Python 3.11.5 (default, ...) 
[GCC ...] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

2.ホストとコンテナ間でファイルを共有する場合

docker run -it --name my-python-container -v "$(pwd)":/app my-python-image

5. Pythonパッケージのインストール

手順
1.ライブラリのインストール
•例:requestsをインストール

pip install requests

2.インストール済みライブラリの確認

pip list

6. コンテナの管理

コマンド一覧

•コンテナの停止

docker stop my-python-container

•コンテナの再起動

docker start -ai my-python-container

•コンテナの削除

docker rm my-python-container

•イメージの削除

docker rmi my-python-image
  1. トラブルシューティング

M1/M2 Macの互換性

•M1チップ用のイメージ(arm64)を使用してください。
•推奨イメージ:python:3.11-alpine

Dockerが起動しない場合

•Docker Desktop設定の「Use Rosetta for x86/amd64 emulation」を有効化。

これでM1 MacでDockerを使用したPython環境の構築が完了です!

Discussion