Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

DockerでDjangoを扱う方法

Dockerのことと、DockerでDjangoを扱う方法をアウトプットします。

Dockerとは

Docker(ドッカー)とはDocker Inc.(旧DotCloud社)によって開発されたコンテナ仮想化ツールです。
アプリ操作をコンテナに分けて実行することや、別のOS上にコンテナを移しても動作するよう働きます。
軽快さ、保存と再利用のしやすさが一番の特徴です。
dockerイメージ
コンテナを立ち上げるために必要なミドルウェアなどの設定やコマンドが、ひとまとめになったテンプレートです。
通常はソフトウェアをインストールして、その後初期設定を行い、さらには細かな設定をカスタマイズする必要がありますが、このDockerイメージを使えばそれらの作業を省略することができます。
コンテナ
Dockerイメージをもとに作られたWebサーバやDBサーバなどが動く仮想環境のことです。
VM(Vagrant+VirtualBox)との違い
・OSのバージョンの違い、仮想環境ツールの違い、仮想環境ツールの設定の違いなどで、構築に手間がかかるということがない。
・VagrantとVirtualBoxのバージョンの相性によってバグがあるという懸念がない。
・仮想環境がコンテナ型である(VMはホストOS型)

Docker+Djangoの構築方法

Dockerを使い、「django_app」というフォルダに、「hello」というアプリケーションを作ります。

*Djangoコンテナの作成

1.Dockerfileを作成

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code

2.requirements.txtを作成

django

3.Dockerイメージの作成

1と2で作成したファイルを「django_app」に配置した後の作業です。

$ cd django_app

以下、django_appでの作業であることに注意

docker build -t my-django-app .

*Djangoの実装

4.docker django startproject の実行

docker run --rm -v "$PWD":/code/ my-django-app django-admin.py startproject django_app .

5.docker django startapp の実行

docker run --rm -v "$PWD":/code/ my-django-app django-admin.py startapp hello

6.runserver の実行

docker run --rm -v "$PWD":/code/ -p 8000:8000 my-django-app python manage.py runserver 0.0.0.0:8000

7.http://127.0.0.1:8000 にアクセス

この画面が出ればOK
次開くときは6->7の手順。

まとめ

DockerとDjangoの操作をしました。
Dockerでコンテナを使っていない意味や、コマンドの意味はまだ理解が曖昧な部分はありますが、一応Djangoは使えます。
誤りがあればご指摘ください。

wafuwafu13
メモ感覚で書いてます。
https://twitter.com/wafuwafu13_
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away