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は使えます。
誤りがあればご指摘ください。