質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4320閲覧

Docker上でDjango内蔵サーバを立てた際のポート設定

saisaifoooo

総合スコア24

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/04/04 15:20

編集2018/04/06 09:06

###質問
Docker上でDjangoの内蔵サーバを立てた時に、ホスト側からアクセスしたいんですが、そのDjango等の設定を施したイメージをrunする時のポート設定はどうすればいいですか?
アクセスしたいURLはhttp://127.0.0.1:8000/です。

###追加項目
実行した時点では公式のCentOSイメージをrunさせて、そのCentOS上でyumコマンドでPython3.6/Djangoをインストールしました。
DocekrFileやDockerComposeに関しては、まだそこまで学習が進んでいないので何も手を付けていない状態です。
この質問に至った経緯は、Docker上で上記の通りCentOSを立ち上げ、Python/Djangoをインストールし、Djangoの学習を進めていた際に、Djangoの内蔵サーバをDocker/CentOS上で実行したが、ホスト側コンピュータ(MacOS)でそこにアクセスできなかったため、調べたところDocker runコマンド時にポート設定のオプションをつける必要があることにたどり着きました。内蔵サーバへはhttp://127.0.0.1:8000でアクセスできる(予定)なので、8000のポートをどうにかするのかと思い調べていましたが、ホスト側とDocker側のポートの設定が必要であると知り、どちらをどのように設定すればホストからDocker内CentOSのDjangoサーバにアクセス出来るのだろうか、と考えたからです。

DockerとDjangoの2つに関する技術知識が必要になり、今までこの分野の学習をしたことがなかったため、Docker上でOSを動かして、コマンドラインでDjangoを操作してWebアプリを作れば、一度にどちらも学習できるのでは?と思い立ったためDockerでCentOSをたちあげ、そこでDjangoを扱っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xenbeat

2018/04/06 08:50

一度実行してみてから質問ください。せめて、環境情報、Dockerfileやcompose.ymlの記載とその設定で動かした結果をご提示いただけないと丸投げの質問と解釈されます。
guest

回答1

0

ベストアンサー

Djangoに触れたことがないのでアプリ側の話になると踏み込んだ回答ができないのですが、
現在の事象的におそらく以下2点に留意すればあとはご自身で解決できるかと思います。

① containerのポートをhostのポートにバインドしてrunする@host
// 補足) 80:8000=host側:container側 docker run -it -p 80:8000 ...
② 全てのIPからのリクエストをバインドしたポートで受け付ける@container
// 補足) 0=全IP、 8000=host側にバインドしたポート python manage.py runserver 0:8000

そうすると上記の設定では
http://127.0.0.1/でアクセスできるはずです。
http://127.0.0.1:8000/でアクセスしたいのであればもうわかりますよね?

もしアクセス後にDjango(アプリケーション)側で何か問題がありましたら別途質問を立てられると良いと思います。
冒頭に申し上げた通り、Djangoに触れたことがないので。。。

投稿2018/04/06 19:27

xenbeat

総合スコア4258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saisaifoooo

2018/04/17 15:13

ベストアンサーに選んだつもりでしたが、ちゃんと選択できておらずに遅れてしまいました 触れたことがないとおっしゃっていましたが、しっかりと解答を書いていただきありがたかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問