DockerでMySQL5.7を簡単に試してみる


■ 目次

  1. 概要
  2. 環境構築
  3. 参考

■ 概要

MySQLをDockerを使って簡単に用意してみる
DockerHubで公式のMySQLイメージが公開されているのでそれを使うこととする

前提としてDockerが使えるところまでは終わっていること

参考:Dockerコマンドを学ぶ

■ 環境構築

今回のLinux検証環境

$ cat /etc/redhat-release
CentOS release 6.8 (Final)

DockerHubにある公式MySQLイメージをpullする

// 容量が数GBあることに注意
$ docker pull mysql:5.7

Dockerの考え方として1つのプロセスで1つのコンテナが推奨されているため
mysqldが起動させるコンテナとそれに接続するためのクライアントコンテナの2つを作成する

// ①
// -e MYSQL_ROOT_PASSWORD=secretは初期rootパスワードを指定
// -dはバックグラウンドで起動するオプション
// --name mydbはコンテナの名前
// mysql:5.7はコンテナを作成する時の元となるイメージ
$ docker run --name mydb -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7

// ②
// --link mydbで連携するコンテナを指定している
// --itは、iオプションでコンテナの標準入力へのアタッチ。tオプションはttyの割り当て。つまりコンテナの中に入れるようになる。
// /bin/bashはコンテナ起動後にbashシェルを起動させる
$ docker run -d --name dbclient --link mydb -it mysql:5.7 /bin/bash

2つのコンテナが作成されたはず

$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54b5b85c7686 mysql:5.7 "docker-entrypoint.s 5 minutes ago Up 1 seconds 3306/tcp dbclient
c355edcfd9b5 mysql:5.7 "docker-entrypoint.s 9 minutes ago Up 9 minutes 3306/tcp mydb

クライアントにアタッチしてみる

// 正確にはdocker startでコンテナを起動
// -iで起動と同時にコンテナへアタッチということをしている
$ docker start -i 54b5b85c7686
root@54b5b85c7686:/#
root@54b5b85c7686:/# env
... envコマンドで環境変数一覧を表示できる ...

// MySQLにログインできる
root@54b5b85c7686:/# mysql -uroot -psecret -h $MYDB_PORT_3306_TCP_ADDR
...
Server version: 5.7.17 MySQL Community Server (GPL)
...
mysql>

このようにすることでコンテナ間を連携したりMySQLを試すことができる

また今回は特に必要性がなかったため紹介しなかったが
docker runする時にオプションを指定するとついでにアカウントを作成したりDBをCREATEすることができる
また用意したmy.cnf(設定ファイル)を読ませたり初回起動時にSQLファイルを読み込ませたりなどもできる


Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です