📌
【PHP】Dockerの用語とDockerを使ったPHP, MySQL, phpMyAdminの構築
今更ながらDockerについて学ぶ
Dockerのメリット、目的
メリット:環境構築を楽にする、開発環境と本番環境の差異をなくす、スケールしやすくする
Dockerの用語
Dockerコンテナ:PHP, MySQLなどをインストールする仮想環境。コンテナがあるおかげでコンテナごと削除したりすることができるので環境の立ち上げ、再構成などが簡単にできる。
Dockerイメージ:PHP、MySQLなどの各種ソフトウェアのこと。
Dockerfile:ディレクトリの移動など構築するときに付随する作業をスクリプトにまとめた物
docker-compose.yml:環境構築するための情報(バージョンやホスト名、ポート番号など)を書くファイル。
Dockerのコマンド
dockerの起動、停止など:こちらが詳しい https://qiita.com/okyk/items/a374ddb3f853d1688820
- 各コンテナの起動、停止などは
- $ docker hogehoge
- コンテナを構成に関することは
- $ docker-compose hogehoge
- 各コンテナでのコマンド(例、MySQLでのログイン)
- docker exec -it CONTAINER_NAME mysql -u USER_NAME -p
Dockerを使ったPHP, MySQL, phpMyAdminの構築
↑2つの事例を参考にしてdocker-compose.ymlを作成した。
version: '3'
services:
nginx:
image: nginx:latest
ports:
- 8080:80
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
- ./www/html:/var/www/html
depends_on:
- php
php:
build: ./php
volumes:
- ./www/html:/var/www/html
depends_on:
- db
db:
image: mysql:5.7.22
ports:
- 13306:3306
volumes:
- ./mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
ports:
- 8888:80
depends_on:
- db
Dockerでのトラブル
docker-compose up -dでエラーになった。
コンテナをstopさせないまま削除しようとしたためだったのでstopさせて対応。
またPHPだとPDOがあらかじめ入っていなくてDBにつながらないといったこともあった。参考:https://note.com/koushikagawa/n/na42e0634f09d
DBにつながったことも確認できたのでヨシ!
Discussion