Docker で Laravel の開発環境を作りたい

魔法のように見えるDocker・・・を学習して Laravel の開発環境を作っていきたい

最終的に作りたい開発環境

  • Linux
  • Apache
  • PHP 7.2
  • MySQL 5.7
  • Laravel 5.5
  • ローカルからコンテナのファイルいじりたい
  • ローカルのPHP開発環境からデバッグしたい
  • ローカルのMySQLクライアントからコンテナのMySQLへアクセスしたい

環境

ホスト

  • macOS 10.14 Mojave
  • Docker 18.09

とりあえずコピペから

  • Apache
  • PHP 7.2
  • ローカルの80番ポートをコンテナの80ポートへフォワード
  • ローカルのカレントディレクトリをドキュメントルートにマウント
$ docker run -d -p 80:80 --name myapp -v $(pwd):/var/www/html php:7.2-apache
  • phpinfo()などのファイルを置いて動作確認

後片付け

$ docker stop myapp # コンテナ停止、その後
$ docker rm myapp # コンテナ削除

コマンドの意味

  • Docker Hubからphp:7.2-apacheのイメージを取得
  • myappというコンテナを作成
  • コンテナをバックグラウンドで起動
  • ホストの80ポートをコンテナの80ポートに接続する
  • ホストのカレントディレクトリをコンテナの /var/www/htmlにマウントする
$ docker \
    run # コマンドを新しいコンテナで実行
    -d   # コンテナをバックグラウンドで実行、コンテナIDを出力する
    -p 80:80 # コンテナのポートをホストに公開する。ホスト:コンテナ。
    -v $(pwd):/var/www/html # ホストのディレクトリをコンテナのディレクトリにマウントする。ホスト:コンテナ。$(pwd)はシェルのコマンド置換で現在のディレクトリとして展開される
    php:7.2-apache # イメージを指定

参考