0
1

More than 3 years have passed since last update.

dockerでMysql+Pythonの環境構築

Posted at

前提知識

Dockerとは何者か

仮想環境を扱う場合にVirtualBoxなdの仮想マシンはホストマシン上でハイパーバイザを利用しゲストosを動かし、その上でミドルウェアを動かしますが、Dockerの場合は、コンテナというものを使用しております。コンテナはホストマシンのkernelを利用し、プロセスやユーザなどを隔離することで、まるで別のマシンが動いているかのように動かせます。ですので、軽量化つ高速で動かせることができます。
ただもちろんですが仮想環境と行っても容量は自分のpcから割かないといけないので、空き容量には余裕を持っておきましょう。
スクリーンショット 2019-11-17 17.30.59.png
(参考記事1より抜粋)

MySQLとは何者か

MySQLはOracle社が開発したリレーショナル型データベースです。(リレーショナル型とは端的に言えばexelのような形式ということ)
基本的な操作はプログラミング言語、SQLを用いて操作します。
MySQLの特徴としてはUNIX系各種OSやWindowsなどの多様なプラットフォームに対応しているのに加えて、アクセスできるプログラミング言語も豊富ということです。シンプルで早く、PHPとの相性も良いです。
データベースの種類について詳しく知りたい方はこちらの記事が分かりやすいです。
データベースとは?その種類、特徴、メリットを詳しく解説します!

DockerでPython+MySQLの環境構築

仮想環境としてubuntuを導入
ちなみにイメージとはそのコンテナを扱う上で必要なパッケージが入っていて、今回だとUbuntuとMySQLがそれに当たります。
コンテナはそのイメージを利用して実行できる環境です。

#Dockerにubuntuのイメージを導入
$ docker pull ubuntu:16.04
#Ubuntuを実行しシェルにログイン
$ docker run -it ubuntu:16.04

pythonとmysql-serverをインストール(mysqldの代わりにmysql-server)

$ apt-get update
$ apt-get install -y python3 python3-pip
$ apt-get install -y mysql-server

PythonでMySQLに接続する為にmysqlclientのインストール

$ apt-get install -y libmysqlclient-dev
$ pip3 install mysqlclient

このコンテナをubuntu-mysqlという名前で保存

$ docker ps -a
$ docker commit (コンテナID) ubuntu-mysql

ローカルから実行したいファイルがあるフォルダをマウントしつつ、実行。

$ docker run -it -v <ローカルからマウントしたいフォルダのパス>:<仮想環境上でのパス> ubuntu-mysql /bin/bash

[参考記事]
1. Docker入門(第一回)~Dockerとは何か、何が良いのか~
2. MySQLとは一体どんなシステム? MySQLの使用例と大きな特徴

[関連記事]
Ubuntu 16.04にMySQLをダウンロードする際に起こりがちなエラー

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1