このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:開発環境コンテナ:Django+MySQL②

🐳 開発環境コンテナ:Django+MySQL②
前回の「開発環境コンテナ:Django+MySQL①」に続いて、
ここでは Djangoプロジェクトを作成し、MySQLと接続できるように設定していきます。
Djangoコンテナ(MySQL)は次の2部構成になっています。
- 開発環境コンテナ:Django+MySQL① … Dockerfileとcompose.yamlを作成
- 開発環境コンテナ:Django+MySQL② … Djangoプロジェクトを作成し、データベースをMySQLに接続
ここでは、Djangoプロジェクトを作成して、Djangoコンテナへの接続を行っていきます。

⚙️ Djangoプロジェクトの作成
Djangoを起動させるためには、まず Djangoプロジェクト を作成する必要があります。
プロジェクト作成には django-admin コマンドを使いますが、
今回は docker compose run を使ってコンテナ内でこのコマンドを実行します。
🧩 Djangoプロジェクト作成コマンド
docker compose run django django-admin startproject myproject .このコマンドは一時的に django サービスのコンテナを起動し、
その中で django-admin コマンドを実行して「myproject」というプロジェクトを作成します。
末尾の . は 現在のディレクトリ にプロジェクトを展開することを意味します。
| 項目 | 説明 |
|---|---|
| docker compose run | Docker Composeで一時的にコンテナを実行するコマンド。 |
| django | 実行するサービス名(compose.yamlで定義したdjangoサービス)。 |
| django-admin | Djangoの管理コマンドツール。プロジェクトの生成やアプリ作成を行う。 |
| startproject | 新しいDjangoプロジェクトを開始するサブコマンド。 |
| myproject | 作成するプロジェクトの名前。 |
| . | カレントディレクトリに作成する指定。 |
💡 ポイント
この操作により、ローカルディレクトリに
myprojectフォルダとmanage.pyが生成されます。
🧱 実行結果
PowerShell上で次のように実行します。
PS C:\Users\joeac\Desktop\docker\django2> docker compose run django django-admin startproject myproject .
[+] Running 12/12
(省略)
=> resolving provenance for metadata file 0.0s
PS C:\Users\joeac\Desktop\docker\django2>実行後、myproject フォルダと manage.py ファイルが作成されれば成功です。
Djangoのプロジェクトテンプレートが生成されます。
「myproject」フォルダの確認
「myproject 」ディレクトリの中身を確認します。

「settings.py」ファイルがあります。このファイルを、この後で編集していきます。

🧹 一時コンテナの停止とクリーンアップ
プロジェクトを作成したら、一時的に起動したコンテナを停止して削除します。
docker compose stop
docker system prune -a| コマンド | 説明 |
|---|---|
| docker compose stop | 実行中のコンテナを停止します。 |
| docker system prune -a | 不要なコンテナ・イメージ・ネットワークをすべて削除します。 |
実行結果
PS C:\Users\joeac\Desktop\docker\django2> docker compose stop
[+] Stopping 1/1
✔ Container mysql_container Stopped 1.5s
PS C:\Users\joeac\Desktop\docker\django2> docker system prune -a
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N] y⚠️ 注意
docker system prune -aは未使用のすべてのイメージを削除します。
確認メッセージが出たらyを入力して実行します。
📝 設定ファイル(settings.py)の編集
Djangoのデフォルト設定では、データベースに SQLite が使われています。
ここでは、MySQLを使うように設定を変更します。
🔍 settings.py の場所
プロジェクト作成後、次の構成になっています。
myproject/
├── __init__.py
├── asgi.py
├── settings.py ← 編集するファイル
├── urls.py
└── wsgi.py
manage.pysettings.py ファイルを開きましょう。
code ./myproject/settings.py🧠 データベース設定の変更
DATABASES の項目を次のように書き換えます👇
赤枠の「DATABASES」の内容を書き換えます。

書き換える内容
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test-db',
'USER': 'test-user',
'PASSWORD': 'test-pass',
'HOST': 'mysql',
'PORT': '3306',
}
}| 項目 | 内容 |
|---|---|
| ENGINE | Djangoで使用するデータベースエンジン。ここではMySQLを指定。 |
| NAME | データベース名(compose.yamlで設定したMYSQL_DATABASE)。 |
| USER | 接続ユーザー名(compose.yamlのMYSQL_USER)。 |
| PASSWORD | 接続パスワード(compose.yamlのMYSQL_PASSWORD)。 |
| HOST | データベースコンテナ名(ここではmysql)。 |
| PORT | MySQLの接続ポート番号(3306)。 |
💡 ポイント
HOSTの値には、Docker Composeで定義したMySQLのサービス名「mysql」を指定します。
これにより、同じネットワーク上のDjangoコンテナからMySQLに接続できます。
🚀 コンテナの作成と実行
設定が終わったら、Composeを使ってコンテナを再度起動します。
docker compose up -d| オプション | 説明 |
|---|---|
| up | コンテナを作成して起動します。 |
| -d | バックグラウンドで実行(デタッチドモード)。 |
💬 補足
このコマンドは「compose.yaml」が存在するディレクトリで実行してください。
正しく起動すればdjango_containerとmysql_containerが立ち上がります。
実行結果
PS C:\Users\joeac\Desktop\docker\django2> docker compose up -d
[+] Running 12/12
✔ mysql Pulled 17.5s
(省略)
[+] Running 4/4
✔ django2-django Built 0.0s
✔ Network django2_default Created 0.0s
✔ Container mysql_container Started 0.6s
✔ Container django_container Started 0.7s
PS C:\Users\joeac\Desktop\docker\django2>🖥️ 実行確認
ブラウザを開いて、以下のURLにアクセスします👇
http://localhost:8000Djangoのトップページ(Welcome to Django!)が表示されれば成功です✨
これで、MySQLに接続可能なDjango環境コンテナが正常に動作しています。

✅ まとめ
ここまでの流れを整理すると次のようになります。
| ステップ | 内容 |
|---|---|
| ① | docker compose run でDjangoプロジェクトを作成。 |
| ② | 一時コンテナを停止・削除して環境を整理。 |
| ③ | settings.py のDATABASES設定をMySQL用に変更。 |
| ④ | docker compose up -d で本番用コンテナを起動。 |
| ⑤ | http://localhost:8000 にアクセスして動作確認。 |
これで、Django+MySQLの連携開発環境コンテナが完成しました!🎉
今後はこの環境をベースに、Djangoアプリを自由に開発できます。
