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

pythonプログラミング言語の人気

LINEで送る

Pocket


pythonプログラミング言語の人気

pythonプログラミング言語の人気が上昇中!

1年前のbook storeでのpython関連書籍は、それほど多くはなかった。
しかし、2018年になるとプログラミング言語書籍コーナーでのpythonプログラミング言語関連書籍の順位は、トップとなった。

pythonプログラミング言語
pythonプログラミング言語
pythonプログラミング
pythonプログラミング言語
pythonプログラミング
pythonプログラミング

 

Python(パイソン)は、汎用のプログラミング言語です。
コードがシンプルで、C言語などに比べて、プログラムを分かりやすく、少ないコード行数で書けるといった特徴があります。

Pythonは、人工知能ソフトの開発、ビッグデータのデータ解析、IoTのソフト開発の現場でよく使われるプログラミング言語です。

Pythonは、特定の企業団体からの影響を受けにくいオープンソースで管理運営されていますので、幅広いジャンルの開発企業から支持されています。

Pythonは教育目的で設計されたわけではないが、単純さから子供が最初に学ぶ、プログラミング教育用の言語としても利用が増えています。

pythonプログラミング言語を開発したグイド・ヴァンロッサムはPython設計以前に教育用言語であるABCの開発にかかわり、教育用としての利用について期待感を示したこともあり、方針として非技術者向けといった利用を視野に入れているとされることもあります。

「私の大好きなPython利用法は、騒ぎ立てずに、言語教育でプログラミングの原理を教えること。」
 スラッシュドット・ジャパン『 グイド・ヴァンロッサム へのインタビュー』より。

ライブラリ[編集]
Pythonには「電池が付属しています(”Battery Included”)」の思想があり、プログラマがすぐに使えるようなライブラリや統合環境をあらかじめディストリビューションに含めるようにしています。
このため標準ライブラリは非常に充実しています。

人工知能ソフトの開発
Pythonは、人工知能ソフト、中でもディープラーニングや機械学習を用いたソフト開発の標準的なプログラミング言語として有名です。
ディープラーニングや機械学習のプログラム処理に高度な数値計算が必要となり、そしてコンパイル不要で手早くテストランできる環境が求められることから Pythonがよく使われる理由です。

IoTシステム開発
IoTとはモノをインターネットにつなぐことです。
IoTは”Internet of Things”の略でモノのインターネットと訳されています。
IoTとはモノがインターネット経由で通信することを意味します。

今、ニュースや新聞でも話題ですね。
プログラミング未経験者からするとIoTって遠い存在のように感じるかもしれませんが、意外と身近な存在です。

IoTシステムは、ラズベリーパイというコンピューターを使って、植木鉢内の水分量を確認するセンサーアプリやビニールハウス内の温度や湿度などをLINEでお知らせしたり、セキュリティーシステムを作ったりといろいろな場面で活躍しています。
単にプログラム・コードを書くだけでなく、センサーと連動したりして「リアル」と連動しながら手軽に学べるのはPythonならではといえます。

ロボット制御
ロボット制御というとCやC++、Javaが代表的なプログラミング言語になりますが、Pythonでもロボット制御が行われています。
Pythonの場合、特に教育現場でのロボット制御が有名で、レゴのマインドストリーム EV3もPythonを使って制御することが可能です。
普通マインドストリーム EXV3は、ビジュアル・プログラミング言語でロボット制御しますが、Pythonで制御することでワンランク上の学習ステージに上がることができます。

Webアプリ
Pythonは、PHPやRuby、Javaのようにサーバーサイドで動くプログラムになります。
PHPに比べると読み書きしやすく、Rubyに比べるとC/C++との相性がよく、Javaに比べると記述量が少なく、コンパイル不要とあってPythonでWebアプリを開発する事例も多数存在します。

Pythonを使って開発されているWebアプリの事例:
YouTube
Instagram
Quora
Reddit

 

群馬プログラミングカレッジでのプログラミング学習では、主にpythonプログラミング言語を学びます。

子どもたちの子どもプログラミング教室では、最初は、Scratchからプログラミングを学び、高学年生はpythonプログラミング言語を学びます。

群馬プログラミングカレッジの「たかポンロボット」、「複数ロボット自然会話システム」、「案内ロボット」などは、pythonプログラミング言語、PHPプログラミング言語で開発されています。

 

 

LINEで送る

Pocket