2026年10月7日
2026年10月7日
DockerでPythonアプリをデプロイする方法
はじめに
Pythonアプリケーションを迅速かつ安定的にデプロイするためには、Dockerを使うことが推奨されます。Dockerはアプリケーションの依存性と環境を明示的に定義し、一貫性のあるデプロイメントを実現します。本記事では、Dockerを使用してPythonアプリケーションを構築、ビルド、デプロイする手順について詳しく解説します。
症状・背景
このテーマが必要になる主な場面は以下の通りです:
- 既存の開発環境と異なるインフラでアプリを安定的に動作させる必要がある場合
- アプリケーションの依存性やバージョン管理が複雑な場合
- テスト環境と本番環境の設定が一貫していることを保証したい場合
手順・設定方法
ステップ1: Dockerイメージの構築
# Dockerfileを作成します。以下の内容を使用してください。
FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
# Dockerfileを作成したら、イメージをビルドします。
docker build -t my-python-app .
# ビルドしたイメージの内容を確認します。
docker images
ステップ2: サーバー上でDockerを実行
# 容器を起動するために適切なポートを開放します。ここでは8000番ポートを使用します。
docker run -d -p 8000:8000 --name my-running-app my-python-app
# ディレクトリ内にあるPythonアプリケーションを確認します。
docker exec -it my-running-app ls
ステップ3: イメージの最適化とタグ付け
# タグを追加してイメージを整理します。例ではlatestにタグ付けしています。
docker tag my-python-app myregistry.com/my-python-app:latest
# レジストリに推奨されるタグ付きイメージをプッシュします。
docker push myregistry.com/my-python-app:latest
ステップ4: 実践/トラブルシュート/監視
# Dockerコンテナのリストを表示します。現在起動しているコンテナの一覧が表示されます。
docker ps -a
# コンテナ内部からアプリケーションを実行し、ログを確認します。
docker exec -it my-running-app tail -f /app/app.log
注意事項
- セキュリティ上の注意: 重要なデータはコンテナ内に保存しないでください。必要であれば外部ストレージを使用してください。
- パフォーマンス/運用上の注意: コンテナ化されたアプリケーションの性能を最適化するために、適切なリソース配分が必要です。
まとめ
1. Dockerイメージの作成: Dockerfileを使ってPythonアプリケーションを効率的にビルドします。
2. コンテナの起動: Dockerコマンドを使用してアプリケーションを実行し、ポートマッピングを行います。
3. イメージの管理: タグ付きイメージを作成し、必要に応じてレジストリにプッシュします。
4. 運用監視: コンテナの状態やログを定期的に確認することで、問題が発生したときに迅速に対処できます。
関連記事: