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実行環境へ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