2022/05/18
ここでは「Laravelローカル環境構築(Docker)」シリーズで構築したコンテナの立ち上げ手順について解説します。
毎回、プロジェクトの開発をはじめる際に、ルーチンワークとして実行するコマンドになります。
Laravelローカル環境構築(Docker その①)
Laravelローカル環境構築(Docker その② ~ DB設定+phpMyAdmin ~)
Laravelローカル環境構築(Docker その③ ~ Authの実装+Node.js ~)
Laravelローカル環境構築(Docker その④ ~ メール送信の設定+MailCatcher ~)
基本の流れ
1) カレントディレクトリの移動
基本的に docker-compose を使っているプロジェクトでアプリケーションの各コンテナを立ち上げる場合、まずは docker-compose.yml がどこにあるのかを確認します。
docker-compose.yml がどこにあるかわかったら、そのディレクトリに移動して docker-compose up -d
で立ち上げることが出来ます。
ここでは 「DockerPractice」 がそのディレクトリだとします。
2) ステータス確認
docker-compose ps
でコンテナ一覧を表示します。
実演
3)起動
ディレクトリに移動して docker-compose up -d
で立ち上げることが出来ます。
-d
のオプションはデタッチド・モードと呼ばれ、バックグラウンド上でコンテナを立ち上げるモードです。
これをつけていないとログがダラダラと流れ出します。
実演
4)立ち上がっているコンテナの中に入る
立ち上がっているコンテナに入りたい場合は docker-compose exec
を利用します。
実演
DB にアクセスしたい場合は、同様に exec
コマンドを使って、MySQLコンテナに入ります。
実演
5)停止
アプリケーションの各コンテナを落とすには docker-compose down
を利用します。
docker-compose stop
というコマンドもありますが、こちらは立ち上げたコンテナを消さないで保持するコマンドです。こちらは基本的に使いません。
down
の場合、立ち上げたコンテナを消してますが、コンテナを消しているだけでイメージは消していません。
実演
Docker Composeにおける各種ファイルの変更時の反映について
docker-compose.yml変更を反映
・イメージ:再構築の必要なし
・コンテナ:再構築の必要あり:docker-compose up -d
Dockerfileの変更を反映
・イメージ:再構築の必要あり:docker-compose build
・コンテナ:再構築の必要あり:docker-compose up -d
一度、 build ディレクトリで指定したものは、 docker-compose up -d したときに build はスキップされます。

Dockerfileに変更を加えたときは docker-compose build し直さないと反映されません。(※PHPの設定ファイル "php.ini" や Apacheの設定ファイル "000-default.conf" に変更を加えたときも同様)
ミドルウェア等の設定変更を反映
・イメージ:再構築の必要あり:docker-compose build
・コンテナ:再構築の必要あり:docker-compose up -d
DockerコンテナにMySQLダンプのインポート
稼働しているサーバからダンプファイルを抽出します。
ダンプしたファイルは docker-compose.yml と同じディレクトリに設置します。
以下、ダンプファイルをインポートするまでの手順です。
実演
Dockerコンテナ内でエラーログの確認(php-apache)
PHP 用の Apache イメージ(php-apache)でコンテナを作成した場合、Apache のエラーログ(/var/log/httpd/error_log もしくは /var/log/apache2/error_log)では確認できません。
以下の docker コマンドを打つとアクセスログは確認することができます。
実演
以上です。
自宅ではじめるDocker入門
Docker関連の数ある本でも、図や丁寧な解説で「わかりやすい」と評判がいい本です。コマンドを叩きながら、Dockerにおける「イメージ」「コンテナ」が理解できます。まだ、Kindle版が出てないのは惜しいですが、Docker入門としておススメの1冊です。

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。