Dockerのコンテナ内でDjangoの開発サーバを起動し、ホスト側からアクセスする

Dockerを使用し、Djangoを用いたアプリ開発を行っている際にハマった点があったので、対処法を忘れないように示す。

 

以下サイトを参考にした。

peblo.gs

qiita.com

Dockerのコンテナ内にexecで入ったのちに

 python manage.py runserver 

をして、localhost:8000にアクセスしても画面が表示されなかった。

これは、コンテナは完全に独立しているというDockerの性質の問題だと考えている。

 

そのため、まずはコンテナ内からホストマシンのlocalhostに接続する必要がある。

一つ目の記事で最終確認まで行う。

 

次は、参考記事のQiitaの方でも示してあるように、docker-compose.ymlの設定に以下の部分があるが、これはコンテナ内では、8000番ポートで起動させてOS側では50030番ポートでリッスンしているという意味である。

 ports:
      - "50030:8000" 

そのため、ホスト側では、localhost50030にアクセスすると上手く表示される。