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

Dockerfileとcompose.yamlを連携してFlask環境を構築する②
こんにちは!😄
前回(①)では、Dockerfileを使ってFlaskをインストールしたPythonイメージを作成する定義をしましたね。
今回はその続きとして、Flaskアプリケーション(app.py)とcompose.yamlファイルを作って、コンテナを定義するところまでを行っていきます。
Dockerfileとcompose.yamlを連携させることで、
Flaskアプリをホストマシンと同期させつつ、自動ビルド&実行ができるようになります。
このシリーズでは次の3部構成で進めています。
- Dockerfileとcompose.yamlを連携してFlask環境を構築する①
- Dockerfileとcompose.yamlを連携してFlask環境を構築する②← 今回はここ!
- Dockerfileとcompose.yamlを連携してFlask環境を構築する③
Flaskアプリケーションの作成
まずはFlaskで動作確認用のアプリケーションを作りましょう。
このアプリはとてもシンプルで、「Hello, World!」を表示するだけです。
アプリ用ディレクトリの作成
アプリのコードをまとめて管理できるように、「src」というディレクトリを作ります。
mkdir src実行結果
PS C:\Users\joeac\Desktop\docker\flask1> mkdir src
Directory: C:\Users\joeac\Desktop\docker\flask1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2025/10/12 1:55 srcこの「src」フォルダの中に、Flaskアプリを作っていきます。
app.pyの作成
次にFlaskアプリの本体ファイル「app.py」を作ります。
以下のコマンドでVSCodeを起動します。
code ./src/app.pyエディタが開いたら、以下のコードを入力して保存してください👇
from flask import Flask
# Flaskアプリケーションのインスタンスを作成
app = Flask(__name__)
# ルートURLに対する処理を定義
@app.route("/")
def hello():
return "Hello World!"
# アプリケーションを実行
if __name__ == "__main__":
app.run(debug=True)コードの解説
このプログラムは、アクセスされたときに「Hello, World!」を返すだけの超シンプルなFlaskアプリです。
| 行 | 内容 |
|---|---|
| from flask import Flask | Flaskライブラリを読み込みます。 |
| app = Flask(__name__) | Flaskアプリのインスタンスを生成。 |
| @app.route("/") | ルートURL / にアクセスがあったときの処理を登録。 |
| def hello(): return "Hello World!" | “Hello World!”を返す関数を定義。 |
| app.run(debug=True) | Flaskをデバッグモードで実行(コードを変更すると自動リロードされる)。 |
コンテナ作成後の確認
ここでは、まだ、このアプリの動作確認ができませんが、コンテナを作成したら、
ブラウザで以下のURLにアクセスして確認します。
http://localhost:5000/「Hello, World!」と表示されれば成功です!✨
compose.yaml の作成
次に、FlaskアプリをDocker Composeで動かすためのcompose.yamlを作成します。
VSCodeで次のコマンドを実行します。
code compose.yaml以下の内容を貼り付けて保存します👇
services:
flaskweb1:
build: .
environment:
FLASK_ENV: development
ports:
- "5000:5000"
volumes:
- ./src:/usr/src/app設定内容の詳細
| 項目 | 内容 | 解説 |
|---|---|---|
| services | コンテナの定義 | 今回は flaskweb1 という名前のコンテナを定義します。 |
| build | Dockerfileの場所を指定 | 「.」は現在のディレクトリ(=Dockerfileがある場所)を意味します。 |
| environment | 環境変数の設定 | FLASK_ENV: development によりデバッグモードで実行。コード変更時に自動リロードされます。 |
| ports | ポートマッピング | ホストの5000番ポートを、コンテナ内の5000番に接続。ブラウザからアクセス可能になります。 |
| volumes | ディレクトリ同期設定 | ホストの ./src をコンテナの /usr/src/app にマウント。ファイルの変更が即時反映されます。 |
つまりこの設定で、
ローカルでapp.pyを修正 → コンテナ側で即リロード → ブラウザに反映
という流れが可能になります。

ここまでの構成図
イメージで理解したい方のために、次のような構成図を思い浮かべてください👇

まとめ
ここまでで、Flaskアプリとcompose.yamlの作成が完了しました!
srcディレクトリにFlaskアプリ(app.py)を作成compose.yamlでDockerfileを指定してFlaskコンテナを起動volumesでホストとコンテナを同期
これでFlaskアプリの基本動作を確認できる準備が整いました。
次回の「③」では、いよいよコンテナを起動して実際にFlaskアプリを動かし、アクセス確認するステップに進んでいきます! 🚀
