DockerによるDjango実行環境へMySQLインストール

LINEで送る
Pocket

DockerによるDjango実行環境へMySQLインストール

MySQLをDockerコンテナへインストール

ゲストOSは、Ubuntu18.04

 

Python3でMySQLに接続するドライバーをインストールする。

pip install PyMySQL

Djangoのmanage.py で、PyMySQLを利用できるように設定

import pymysql

pymysql.install_as_MySQLdb()

 

MySQLサーバーとクライアントをインストール。

Ubuntuでは、通常両方をインストールする。

apt-get install mysql-server mysql-client

 

MySQL serverとMySQL clientの機能:

MySQLは、クライアント/サーバーアーキテクチャで、ネットワーク環境で動作する。

MySQL serverは、MySQL clientからの要求を受けてデータベースの入出力を行う。

 

MySQL client:

MySQL serverに接続できる。

 

MySQ server:

複数のデータベースをホストし、MySQ clientからのクエリを処理する。

「MySQ」パッケージは、MySQ server、MySQ clientの両方を含んでいる。

リモートサーバーに接続してクエリを実行するだけでよい場合は、MySQ clientだけをインストールする。データベースをホストする必要がある場合は、クライアントとサーバーをインストールする。

 

 

MySQLの基本設定

mysql_secure_installation コマンドを実行し、管理者(root)、パスワードなどインストール後の初期設定を行う。基本的には、「y」で進める。

 

MySQLサービスを起動

$ service mysql start

 

再起動は、

$ service mysql restart

 

ローカルコンソールからMySQLサーバーに接続

$ mysql -u root -p

パスワードを入力

 

MySQLに接続すると、以下のプロンプトが表示される。

mysql >

 

状態表示

mysql > status

 

データベース一覧表示

mysql > show databases;

 

データベース選択

mysql > use データベース名

 

データベース上に存在するテーブルの確認

mysql > show tables from データベース名;

mysql > show tables from test_db;

 

テーブルの構造を確認

mysql> desc テーブル名;

mysql> desc hello_friend;

 

テーブルの一覧表示

mysql> select * from テーブル名;

mysql> select * from hello_friend;

 

 

ユーザー一覧表示

mysql > select user,host from mysql.user;

 

特定のユーザーの権限確認

mysql > show grants for ‘ユーザー名’@’ホスト名’;

 

中断

mysql > quit

 

終了

mysql > exit

 

 

データベースの作成

mysql > create database ‘データベース名’;

mysql > create database test_db;

 

 

ユーザーの作成

mysql > create user ‘ユーザー名’@’ホスト名’ identified by ‘パスワード’;

mysql > create user hanako@localhost identified by ‘password’;

 

 

ユーザーにデータベースの操作権限を付与

mysql > grant all privileges on ‘データベース名’.* to ‘ユーザー名’@’ホスト名’ identified by ‘パスワード’;

mysql > grant all privileges on test_db.* to hanako@localhost identified by ‘password’;

 

MySQLデータベースの文字コードを「utf8」に設定して、日本語入力を可能にする。

 

文字コードの確認

mysql > status

 

character_setの確認

mysql> show variables like “chara%”;

ディフォルトだと、

server   characterset: latin1

DB        characterset: latin1

 

nano /etc/mysql/mysql.conf.d/mysqld.cnf # nanoエディターで編集。

nanoエディターは事前にUbuntu環境にインストールしておく

[mysqld]セクションに下記の行を追加する。

character-set-server = utf8

default_password_lifetime = 0 # パスワード設定期間を無期限にする。

lower_case_table_names = 1 # 大文字、小文字を区別しない。

 

その他ツールの文字コードをutf8にする。

nano /etc/mysql/conf.d/mysqldump.cnf

 

[mysqldump]セクションに下記行を追加する。

default=character-set = utf8

 

nano /etc/mysql/conf.d/mysql.cnf

[mysql] セクションに下記行を追加する。

default=character-set = utf8

 

 

 

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