ベースとしたDockefileはこちらにあります。
https://github.com/tutumcloud/lamp
16.04へベースを変更しphp7とmysql5.7をインストールするように設定
更にmysqlの設定方法を5.7にあわせて変更
イメージの作成: カレントに移動して以下を実行
docker build -t ubuntu-lamp .
コンテナの起動:
docker run -d -p 8888:80 6666:3306 -v ($pwd)/data/app:/app ubuntu-lamp
- httpのポートは
8888に変更 - mysqlのポートは
6666に変更しています - /appをhost側の
($pwd)data/appにマウントしています
起動の確認:
windows/macにて docker-machineを使っている場合
$docker-machine ip
$192.168.99.100
上記コマンドでip取得
curl http://192.168.99.100:8888/
linux環境の場合
curl http://localhost:8888/
Container内であればrootのパスワード無しで接続可能です:
<?php
$mysql = new mysqli("localhost", "root");
echo "MySQL Server info: ".$mysql->host_info;
?>
外部からの接続を許可されたadminユーザをランダムパスワードで接続できる用に初期設定されています:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13a03d2d4d4d xenial-lamp "/run.sh" 11 hours ago Up 11 hours 0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp desperate_shaw
上記のようにdocker psにてコンテナ起動中であることを確認し
docker logs desperate_shaw
上記のようにログ出力を確認します。
========================================================================
You can now connect to this MySQL Server using:
mysql -uadmin -p47nnf4FweaKu -h<host> -P<port>
Please remember to change the above password as soon as possible!
MySQL user 'root' has no password but only allows local connections
========================================================================
上記のようにmysqlの接続例がでますのでこれを使って接続します。
You can then connect to MySQL:
mysql -uadmin -p47nnf4FweaKu
以下のように指定することで任意のパスワードにadminを設定することも可能です
docker run -d -p 80:80 -p 3306:3306 -e MYSQL_PASS="mypass" ubuntu-lamp