このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:Dockerfileとcompose.yamlを連携してFlask環境を構築する③

Dockerfileとcompose.yamlを連携してFlask環境を構築する③
こんにちは!😄
前回(②)では、Flaskアプリとcompose.yamlを作成し、Dockerfileとの連携準備が整いました。
今回はいよいよ実践編!
Flaskコンテナを実際にビルド・起動して、ブラウザからアクセスするところまでを解説していきます。
このシリーズでは次の3部構成で進めてきました。
- Dockerfileとcompose.yamlを連携してFlask環境を構築する①
- Dockerfileとcompose.yamlを連携してFlask環境を構築する②
- Dockerfileとcompose.yamlを連携してFlask環境を構築する③ ← 今回はここ!
Flaskコンテナの作成と実行
準備ができたら、いよいよFlaskコンテナを作成して起動します。
実行コマンドはとてもシンプルです。👇
docker compose up -d| オプション | 説明 |
|---|---|
| up | compose.yamlの設定をもとにコンテナを作成・起動 |
| -d | バックグラウンド(デタッチドモード)で実行 |
このコマンドを実行すると、DockerがDockerfileを読み込み、FlaskをインストールしたPythonイメージをビルドします。
実行結果👇
PS C:\Users\joeac\Desktop\docker\flask1> docker compose up -d
[+] Building 32.8s (10/10) FINISHED
(省略)
[+] Running 3/3
✔ flask1-flaskweb1 Built 0.0s
✔ Network flask1_default Created 0.0s
✔ Container flask1-flaskweb1-1 Started 0.6s
PS C:\Users\joeac\Desktop\docker\flask1>最後に 「Container flask1-flaskweb1-1 Started」 と表示されていればOK!
これでコンテナが正常に起動しています。🎉
Flaskアプリにアクセスしてみよう
コンテナが起動したら、ブラウザを開いて以下のURLにアクセスします。
http://localhost:5000Flaskアプリが動いていれば、画面に 「Hello World!」 と表示されます。

これでFlask環境の起動成功です!👏
Flaskアプリを編集して確認
コンテナがきちんとホストと同期しているかを確認するために、
Flaskアプリの内容を少し変更してみましょう。
app.pyの変更
以下のコマンドでVSCodeを開きます。
code ./src/app.pyそして、次のように「Hello World!」を「Hello Flask!」に変更して保存します👇
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello Flask!" # ← ここを変更!
if __name__ == "__main__":
app.run(debug=True)プログラムを上のように変更して保存します。

変更が反映される仕組み
このFlask環境では、ホストとコンテナの間で「バインドマウント(volumes)」を設定しています。
つまり、ホスト側でapp.pyを修正すると、その変更が即座にコンテナ内にも反映されるようになっています。

| 項目 | 内容 |
|---|---|
| ホスト | ./src/app.py |
| コンテナ | /usr/src/app/app.py |
| 設定内容 | volumes: ./src:/usr/src/app |
変更が反映されないときの対処
FlaskのバージョンやPythonの組み合わせによっては、
変更がすぐに反映されないこともあります。
その場合は、以下のコマンドでコンテナを再起動しましょう。
docker compose restart実行結果👇
PS C:\Users\joeac\Desktop\docker\flask1> docker compose restart
[+] Restarting 1/1
✔ Container flask1-flaskweb1-1 Started 再起動後にブラウザをリロードすると、今度は 「Hello Flask!」 と表示されるはずです✨

Flaskアプリが表示されないときの確認ポイント
Flaskがうまく起動しない場合は、以下の原因が考えられます。
| 原因 | 対応策 |
|---|---|
| PythonとFlaskのバージョンの相性 | Dockerfileで指定しているバージョンを見直す。 |
| app.pyの構文エラー | 編集ミスがないか確認 |
| ポート競合 | 5000番ポートを他のアプリが使用していないか確認 |
それでも動かない場合は、ログの確認を行いましょう。
ログの確認方法
コマンドで確認
docker compose logs| 出力内容 | 説明 |
|---|---|
| Debug mode | デバッグモードの状態 |
| Running on | Flaskが動作しているアドレス |
| GET / HTTP/1.1 | ブラウザからのアクセスログ |
実行結果👇
PS C:\Users\joeac\Desktop\docker\flask1> docker compose logs
flaskweb1-1 | * Debug mode: off
(省略)
flaskweb1-1 | * Running on all addresses (0.0.0.0)
flaskweb1-1 | * Running on http://127.0.0.1:5000
flaskweb1-1 | * Running on http://172.18.0.2:5000
(省略)Docker Desktopで確認
GUI派の方は、Docker Desktopからも確認できます。
1.「Containers」タブを開く
2.該当するFlaskコンテナ(flask1-flaskweb1-1)をクリック

3.右側の「Logs」タブで出力内容を確認

エラーがあれば赤文字で表示されます。
Flaskアプリの構文ミスなどもここで確認できます。
イラストで理解する:Flask実行までの流れ

まとめ
これで3部作の解説は完結です!🎯
| ステップ | 内容 |
|---|---|
| ① | DockerfileでFlask入りPythonイメージを作成 |
| ② | Flaskアプリとcompose.yamlを用意 |
| ③ | コンテナをビルド・起動して実行確認 |
今回学んだポイントをおさらいすると、
- compose.yamlだけでもコンテナは起動できるが、オリジナルイメージを作りたいならDockerfileが必要!
- Flaskのコードを修正すると、バインドマウントで即反映!
- うまく動かないときは docker compose logs で原因をチェック!
これであなたも、DockerfileとComposeを組み合わせたFlask開発環境構築の基本マスターです。
次のステップでは、この環境を応用してデータベース連携や本番環境向け構成にも挑戦してみましょう! 🚀
