こんにちは、JS2IIUです。
前回、Streamlit Community Cloudでアプリを公開する方法についての記事を書きました。今回はDockerを使ってアプリをローカルに公開するベーシックな方法をみていきます。よろしくお願いします。
はじめに
この記事では、Pythonで作成したStreamlitアプリを Docker を使って ローカルサーバーで公開する方法 をステップバイステップで解説します。
Streamlitは簡単にデータ可視化アプリを作れる便利なフレームワークですが、「アプリを他の人と共有するにはどうすればいいの?」と悩む方も多いはずです。そこで今回は、ローカル環境でDockerを使ったデプロイ方法をご紹介します。
Dockerが初めてという方でもわかるように、丁寧に解説していきます。
1. Streamlitアプリの準備
まずは、シンプルなStreamlitアプリを用意しましょう。
📁 ディレクトリ構成
以下のようなフォルダを作成してください:
my-streamlit-app/
├── app.py
└── requirements.txt📝 app.py
import streamlit as st
st.title("こんにちは、Docker × Streamlit!")
st.write("このアプリはDockerコンテナで動作しています。")このアプリは、「タイトル」と「テキスト」を表示するだけのシンプルなものです。
📝 requirements.txt
Streamlitアプリが動作するのに必要なパッケージを記述します:
streamlit2. Dockerとは?
Dockerは、「アプリとその動作に必要な環境をまとめて1つのパッケージ(=コンテナ)にする技術」です。
これにより、以下のようなメリットがあります:
- 他の人のPCでも「同じ環境」でアプリが動作する
- 本番環境への移行がスムーズになる
- OSに依存せず、どこでも同じように動く
今回は、ローカル開発用にDockerを使う方法をご紹介します。
3. Dockerfile の作成
Dockerfileとは、「Dockerイメージをどう作るか」を記述した設計図です。以下のようにファイルを作成します。
📝 Dockerfile
# Pythonの軽量イメージをベースにする
FROM python:3.9-slim
# 作業ディレクトリを作成
WORKDIR /app
# 必要なライブラリをコピーしてインストール
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# アプリ本体をコピー
COPY . .
# ポートを開放(Streamlitのデフォルトポート)
EXPOSE 8501
# アプリを起動するコマンド
CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]✅ 解説
FROM: Pythonの公式イメージを使用WORKDIR: 作業ディレクトリ(/app)を指定COPY: ファイルをDocker内にコピーRUN: パッケージをインストールEXPOSE: 使用するポートを明示(8501)CMD: コンテナ起動時にStreamlitアプリを実行するコマンド
4. Dockerイメージのビルド
次に、作成したDockerfileをもとにイメージをビルド(構築)します。
🛠 コマンド
ターミナルで my-streamlit-app ディレクトリに移動し、以下を実行:
docker build -t my-streamlit-app .✅ 解説
-t my-streamlit-app: このイメージに「my-streamlit-app」という名前をつける.: カレントディレクトリ(Dockerfileのある場所)を指定
5. Dockerコンテナの起動
イメージができたら、それを元に コンテナを起動 します。
🚀 コマンド
docker run -p 8501:8501 my-streamlit-app✅ 解説
-p 8501:8501: ホスト(自分のPC)の8501ポートを、コンテナの8501ポートに接続my-streamlit-app: 起動するDockerイメージ名
6. ブラウザでアプリにアクセス
Dockerコンテナが起動すると、以下のようなログが表示されます:
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://192.168.x.x:8501🌐 ブラウザで確認
http://localhost:8501 にアクセスすると、Streamlitアプリが表示されます。
7. よくあるエラーとその対処法
❌ Dockerコマンドが使えない
→ Docker Desktop が起動しているか確認してください。
❌ モジュールが見つからない(ModuleNotFoundError)
→ requirements.txt に不足がないか確認してください。
❌ ポートが競合している
→ 他に8501ポートを使っているアプリがないか確認するか、別のポートを指定してください(例:-p 8502:8501)。
8. まとめ
今回の内容をまとめます:
✅ Streamlitアプリを準備
✅ Dockerfile を作成
✅ Docker イメージをビルド
✅ Docker コンテナを起動
✅ ブラウザでアプリを確認
これで、ローカル環境でStreamlitアプリをDockerで公開できました!
今後は、このDockerコンテナを他の人に渡したり、クラウドにデプロイするステップに進むこともできます。
9. 参考リンク
おわりに
Dockerを使えば、環境の違いによる動作の不一致を防ぐことができ、チーム開発や配布がとても楽になります。ぜひこの機会に、ローカルでのデプロイを体験してみてください!
最後まで読んでいただきありがとうございました。


コメント