Dockerのコンテナ内でDjangoの開発サーバを起動し、ホスト側からアクセスする
Dockerを使用し、Djangoを用いたアプリ開発を行っている際にハマった点があったので、対処法を忘れないように示す。
以下サイトを参考にした。
Dockerのコンテナ内にexecで入ったのちに
python manage.py runserver
をして、localhost:8000
にアクセスしても画面が表示されなかった。
これは、コンテナは完全に独立しているというDockerの性質の問題だと考えている。
そのため、まずはコンテナ内からホストマシンのlocalhostに接続する必要がある。
一つ目の記事で最終確認まで行う。
次は、参考記事のQiitaの方でも示してあるように、docker-compose.yml
の設定に以下の部分があるが、これはコンテナ内では、8000番ポートで起動させてOS側では50030番ポートでリッスンしているという意味である。
ports:
- "50030:8000"
そのため、ホスト側では、localhost50030
にアクセスすると上手く表示される。