DockerによるDjango開発環境コンテナ作成&起動

LINEで送る
Pocket

DockerによるDjango開発環境コンテナ作成&起動

DockerによるDjango開発環境

ソースコードの開発は、Windows上のPyCharmで、アプリケーションの動作確認はDockerコンテナ(Ubuntu)のrunserverで実行できる環境構築におけるDockerコンテナ作成&起動操作メモです。

 

全体像は、次のようになります。

DockerによるDjango実行環境

 

コンテナの一覧表示

docker ps -a

 

 

1つまたは複数のコンテナを削除

docker rm コンテナID

 

 

イメージを一覧表示

docker images

 

 

1つまたは複数のイメージを削除

docker rmi イメージID

 

 

mysiteイメージ作成

 

Dockerfile格納ディレクトリ(mysite)に移動して、実行

 

以下は、Dockerfileの内容です。

Dockerfileは、拡張子は付けません。

ubuntu:18.04をベースにしたDockerイメージ作成用の内容です。

 

 

 

 

docker build -t mysite:1.0 C:\Users\user\PycharmProjects\mysite

 

 

Dockerコンテナ作成&実行

 

docker run -it -p 8000:8000 -v C:\Users\user\PycharmProjects\mysite:/root/mysite –name mysite mysite:1.0 /bin/bash

 

Dockerコンテナを実行し、bashで対話型シェルにログインする。

その際、runserverのために8000番ポートを開けておく。

また、DjangoプロジェクトのディレクトリをDocker側の「/root/mysite」ディレクトリと同期する。

 

 

Docker側で必要なモジュールを適宜インストールする。

 

root@XXXXXX:~/mysite # pip3 install “Django==2.2” # Djangoのインストール

# XXXXXXは、コンテナID

root@XXXXXX:~/mysite # apt-get install nano # nanoエディターのインストール

 

 

Webサーバー実行

 

root@XXXXXX:~/mysite # python3 manage.py runserver 0.0.0.0:8000

 

 

実行したら、ブラウザで確認

http://0.0.0.0:8000

http://localhost:8000

 

 

 

Dockerコンテナ起動

docker start コンテナIDまたはname

 

Dockerログイン

docker attach コンテナID

 

Dockerログアウト

docker dettach コンテナID

 

Dockerコンテナ停止

docker stop コンテナIDまたはname

 

 

インストールできたら、サービスの起動確認

 

 

Docker起動手順

 

UbuntuにMySQLをインストールして、DjangoでMySQLに接続します。

 

 

  1. Powershell起動
  2. docker ps -a
  3. docker start コンテナID
  4. docker attach コンテナID
  5. root@[コンテナID]:~/mysite # service mysql start # mysql起動
    「root@[コンテナID]:~/mysite #」は、Ubuntuのコマンドプロンプト
  6. root@[コンテナID]:~/mysite # mysql -u root # 作成したユーザでMySQLへ接続
  7. root@[コンテナID]:~/mysite # quit # mysqlから抜ける
  8. root@[コンテナID]:~/mysite # python3 manage.py runserver 0.0.0.0:8000 # サーバーを起動
  9. http://localhost:8000/ # ブラウザで確認

 

LINEで送る
Pocket

DockerによるDjango開発環境

LINEで送る
Pocket

DockerによるDjango開発環境

ソースコードの開発は、Windows上のPyCharmで、アプリケーションの動作確認はDockerコンテナ(Ubuntu)のrunserverで実行できる環境を構築します。

 

全体像は、次のようになります。

DockerによるDjango実行環境

 構築手順:

Docker Desktop for Windows」をインストール

Docker Desktop for Windowsは、Hyper-V 仮想化を使用します。Windows 10 上で Hyper-V を使用するためには、Windows 10 Professional 以上のエディションが必要です。

なお、今回インストールしたデバイスの仕様とWindowsの仕様は次の通りです。

プロセッサ Intel(R) COre(TM) i5-5200U CPU @ 2.20GHz 2.20GHz

実装RAM 4.00 GB

システムの種類 64 ビット オペレーティング システム、x64 ベース プロセッサ

エディション Windows 10 Pro

 

事前準備

Docker Desktop for Windows をインストールする事前準備として、Windows マシンの Hyper-V を有効化しておく必要があります。

また、Docker公式サイトにて、Docker ID というアカウントを取得して必要があります。

 

Hyper-Vの有効化 にする

Windows ボタンを右クリックし、[アプリと機能] を選択します。

[関連設定] の下にある [プログラムと機能] を選択します。

[Windows の機能の有効化または無効化] を選択します。

[Hyper-V] を選択して、[OK] をクリックします。

有効化するには Windows マシンの再起動が必要です。

 

 

Docker IDの取得 する

Docker Desktop をインストールするには、Docker IDというアカウントが必要となります。

事前に、Docker 公式サイトにて、Docker IDのアカウントを取得してください。

 

次のURLからサインアップしアカウントを作成してください。

 

https://hub.docker.com/signup

 

Docker Desktop for Windows のインストール

 

インストール

 

インストーラーをダウンロードする

次のサイトで Docker for Windows インストーラーをダウンロードしてインストールします。

 

https://www.docker.com/products/docker-desktop

 

[Download Desktop for Mac and Windows] ボタンをクリックします。

 

次の画面で、 [Download Desktop for Windows] ボタンをクリックして、[Docker Desktop Installer.exe] をダウンロードします。

 

Windowsマシンへのインストールする

ダウンロードした [Docker Desktop Installer.exe] ファイルを、エクスプローラーから実行してください。

ダウンロードが完了すると、Configraton の画面が出ます。そのまま「OK」を押してください。

 

[Use Windows containers instead of Linux containers (this can be chananged after installation] の行にはチェックボックスが付いていません。これはコンテナで Windows を動かす場合のオプションです。

今回は Ubuntuを動かしたいのでこのチェックボックスは不要です。

 

インストールが始まります。しばらく待機してください。

ここまでで Docker Desktop for Windows のインストールは完了です。

 

 

動作確認

 

Docker のバージョンの確認をしてみる

まずは、インストールされた Docker のバージョンを確認してみましょう。

Windows PowerShell を起動して、docker version コマンドでバージョン情報が表示されます。

Docker version

Hello Worldを動かしてみる

おなじみの hello world を実行します。

docker run コマンドは、イメージからコンテナを起動するコマンドです。

 

 

hello-world というイメージからコンテナを作成して起動するという意味になります。

ただし、ローカルに hello-world イメージがないため、Docker デーモンが hello-world イメージを Docker HubDocker社が運営する、インターネット上でイメージを公開・共有したりする Docker Registry サービス)からダウンロードし、イメージからコンテナを起動します。

イメージはファイルシステムとアプリケーションやミドルウェア、実行時に必要とするパラメータから構成されます。

このコンテナは次のような標準出力を出して終了します。

 

 

 

これでDockerの動作確認ができました。

 

Djangoプロジェクトを作成

 

PyCharmによるDjango開発環境の構築」の手順で、

\Users\user\PycharmProjects\mysiteDjangoプロジェクトを作成します。

 

 

DockerfileからDockerイメージを作成

 

次に示すDockerfileDjangoプロジェクトの直下に作成します。

ファイル名は、拡張子なしの「Dockerfile」とします。

 

 

次のコマンドを実行して、DockerfileからDockerイメージを作成します。

このDockerfileから、python3.7.5をインストールしたUbuntu 18.04ベースのイメージを作成することができます。

 

Dockerコンテナ の作成・起動

 

コンテナ を作成・起動する

Dockerイメージが作成できたら、Dockerコンテナを作成して起動します。

 

次のように docker run コマンドを実行して、コンテナを作成・起動します。

Dockerコンテナを実行して、bashで対話型シェルにログインします。

 

runserverのために、8000番ポートを開けておきます。

また、DjangoプロジェクのディレクトリをDocker側の「/root/mysite」ディレクトリと同期させます。

 

 

 

Dockerコンテナ上で事前準備

「393dff996336」は、Dockerコンテナ作成時に自動的に作成される「コンテナID」です。

 

 

動作確認

これで、PyCharmで作成したソースコードを、Dockerコンテナ上のUbuntuで動作確認することができます。

ホスト側の環境を壊すこともありません。

最後にrunserverを実行して、Windows上のブラウザで動作確認を行います。

 

 

Dockerコンテナ(コンテナID:393dff996336)を起動して、ログイン。

MySQLサービスを起動して、作成したユーザでMySQLに接続して、「quit」コマンドで抜ける。

次に、「python3 manage.py runserver 0.0.0.0:8000」で、サーバーを起動する。

ブラウザで、「http://localhost:8000/hello」で動作を確認。「hello」は、Djangoのアプリケーション名。

 

LINEで送る
Pocket