ハマログ

株式会社イーツー・インフォの社員ブログ

DockerでMySQLの環境を構築してみる

前々からやってみないと、とは思っていたけど後回しにしていたDockerを時間ができたので少し触ってみました。

Docker for Macの登場によってローカル開発環境の構築に関して言えば少し敷居が低くなったような気もしましたし。

いきなりLAMPの開発環境すべてをDockerで揃えようというのにはまだまだ調査不足ということもあり、まずはMySQLのコンテナを単独で立ち上げてみます。

DockerHubに安心安全公式のMySQLイメージがあるのでこれを使ってみます。

今回はMySQL5.6を構築します。(今の所MySQL5.7の仕事の予定がないので)

まずは以下コマンドでMySQL5.6のイメージを取得してきます。

docker pull mysql:5.6

“:”に続く5.6が「タグ」です。「タグ」によってMySQLのバージョンまで指定して構築できるのはお手軽です。

タグを指定しなければ現時点(2017/01/23)ではMySQLの5.7のイメージが取得されます。

次にMySQL5.6のコンテナを起動します。以下コマンドを実行します。

docker run --name mysql56test -e MYSQL_ROOT_PASSWORD=(ルートユーザーのパスワード) -d mysql:5.6

これでコンテナ名「mysql56test」でMySQL5.6のコンテナが起動しました。”mysql:5.6″とタグをしっかり指定しないと、(おそらく)MySQL5.7のイメージを取得したのち、MySQL5.7のコンテナを起動してしまいます。

docker psコマンドでコンテナの稼働状況を確認してみます。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
d43289af8586        mysql:5.6           "docker-entrypoint..."   28 minutes ago      Up 29 minutes       3306/tcp            mysql56test

しかしこれではMySQLクライアントソフト(Sequal Pro)から接続できませんでした。それではあんまりなので、接続できるようにします。docker runコマンドの-pオプションでホストとコンテナとのポートをつなぎます。

docker run --name mysql56test -p 3306:3306  -e MYSQL_ROOT_PASSWORD=(ルートユーザーのパスワード) -d mysql:5.6

再度docker psコマンドでコンテナの稼働状況を確認します。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
284a79b565bb        mysql:5.6           "docker-entrypoint..."   8 seconds ago       Up 6 seconds        0.0.0.0:3306->3306/tcp   mysql56test

「PORTS」の項目が変わりました。Sequal Proでつないでみます。

接続テストも成功!!

しかしcaracter-set-serverがlatin1・・・これだから洋物は!!

DockerHubのここ含め、これに対応する情報は色々あるので、次回はutf8対応をしてみようと思います。

Docker

  Shin.A   2017年1月23日


関連記事

TCPDFで日本語フォントを利用する

はじめに PHPからPDFファイルを作成・出力するためのライブラリTCPDFで日…

CodeceptionでPhantomJSによるブラウザテストをしてみる。

Dockerの続きを書こうとしましたが、結局MySQLのコンテナくらいしか使って…

Laravel EloquentのソートでNULLを最後に持ってくる(MySQL)

Laravel5系+MySQL5のはなし。 Laravel+Eloquentのプ…


← 前の投稿

次の投稿 →