Dockerを引き続き勉強中。

Dockerで構築したPHP7の環境でSOY CMSを動かしてみる


本当はPHP7のコンテナからMySQLのコンテナを利用したいんだけど、

いまいちよくわかってないので、


練習として、ホストからMySQLのコンテナにアクセスしてみることにした。


まずは、MySQLのイメージを作成


mysql
├── Dockerfile
└── charset.cnf

mysqlディレクトリを作成して、Dockerfileとcharset.cnfを用意


Dockerfileは


FROM mysql

#MySQLの文字コードの変更
COPY charset.cnf /etc/mysql/conf.d/

charset.cnfは


[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8

ここまで準備できたら、


docker build -t mysqlserver .

ビルドを行い、


docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
mysqlserver          latest              2cc4ba5ce283        5 seconds ago       361.3 MB

イメージが生成されたことを確認。

このイメージを利用してコンテナを下記のコマンドでコンテナを作成する。


docker run -it --name mysqlsev -e MYSQL_ROOT_PASSWORD=pass -p 12345:3306 mysqlserver

これで、IDがroot、Pwがpass、ポートが12345のMySQLサーバができた。


別の端末を開き、ホストからMySQLサーバのコンテナのMySQLにログインしてみる。


mysql -u root -p -h 127.0.0.1 -P 12345
Enter password: 

Enter password:でpassと入力してエンターキーを押すと、


Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.11 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

これでコンテナ内のMySQLに接続出来ました。