事前準備
Docker Desktopをインストールする
Dockerの公式ページから直接ダウンロードするか、以下のbrew
コマンドでインストールします。
brew install --cask docker
インストール後は、必ずDocker Desktopを起動するようにしてください。

会員登録を求められますが、個人利用なら無料で使えるのでGoogleアカウントなどで登録してしまって大丈夫です。(2025年6月現在)
上記のbrewコマンドは、Homebrewインストール後に実行しましょう。
▼ Homebrewのインストール方法はこちら

Streamlitアプリの開発
Streamlitアプリを作成する
続いて、Streamlitアプリを作成しましょう。
自由にお作りいただいても構いませんが、サクッと進めたい方は以下の記事で紹介しているソースコードを使って家計簿アプリを構築するのが簡単です。

今回のフォルダ構成
今回はDocker環境なので、次のような構成となります。
kakeibo-app/
├── app.py
├── requirements.txt
├── Dockerfile
└── .dockerignore
すでにapp.pyは作成ずみという前提としますので、その他のファイルの中身を解説していきましょう。
requirements.txt
インストールするライブラリをrequirements.txtに書き出します。
streamlit
pandas
matplotlib
watchdog
本当はバージョンまで指定した方が依存関係が固定化されて望ましいのですが、今回は動作確認程度としたいのでライブラリ名だけでOKとします。
Dockerfile
Dockerを動かすためのDockerfileは、以下のようにします。
FROM python:3.11-slim
WORKDIR /app
COPY . /app
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.enableCORS=false"]
python:3.11-slim
という軽量なPythonイメージを使い、CMD
でStreamlit起動をしています。
--server.enableCORS=false
オプションは、外部アクセス対応のためにつけました。
コンテナをビルド・実行する
Dockerコンテナを動かすまでの手順を説明します。
Dockerイメージのビルド
まずはDockerイメージを作成する「ビルド」という作業を行います。
以下のコマンドを実行してください。
docker build -t streamlit-app .
するとDockerイメージを作成するためのプロセスが流れていきますので、終わるまでしばらく待ちましょう。
ちなみに最後の.
は、「現在いるディレクトリに存在するDockerfileを使ってビルドせよ」という意味になります。
Dockerイメージの名前を確認する
先ほど作成したイメージの名前を確認しましょう。
docker images
実行結果は以下のようになります。
REPOSITORY TAG IMAGE ID CREATED SIZE
streamlit-kakeibo latest 8a5199639b09 8 minutes ago 1.62GB
streamlit-kakeibo
が、このイメージの名前となります。
この名前は次のステップで使います。
作成したDockerコンテナを起動する
作成したイメージを実行するコマンドは、以下になります。
docker run -p 8501:8501 streamlit-kakeibo
-p 8501:8501
は、ホストPCの8501ポートとDockerコンテナの8501ポートに対応させる問いう意味になります。
そのため、ブラウザからlocalhost:8501
ポートにアクセスするとStreamlitアプリにアクセスできるようになるわけです。
最後のstreamlit-kakeibo
は、一つ前のステップで確認したイメージ名です。
起動確認
どのURLにアクセスすればいいかは、ターミナルの画面上に表示されます。
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://xxx.xx.x.x:8501
External URL: http://xxx.xxx.xx.xxx:8501
今回はローカルで起動するので、ブラウザでhttp://localhost:8501/
を開けばOKです。
以下のような画面が表示されれば、Dockerでの実行は完了です。

完成したアプリをVPSを使ってインターネット上に一般公開する
ここで完成したアプリは、VPSを使って一般公開が可能です。
今回はDockerを使っている関係上、一般公開もかなりハードルが低くなります。
一般公開までの方法は別記事にまとめてありますので、ぜひそちらも実践して見てください。
コメント