概要
- 手元のPCでWordpressを軽く触りたい
- 手元のPCにPHPやDBをインストールしていない(環境設定とか面倒)
- MAMPのような導入に便利なパッケージあるけど、やっぱり手元のPC環境はきれいなままにしたい
- そもそも、Wordpressで本格的に何かを開発するのではなくて勉強程度に触れるだけ
...ってな時にはDockerで試してみるのもありですね!
環境
- Windows 10 pro
- Docker version 19.03.2
- docker-compose version 1.24.1
準備
- 下記ファイルを用意
docker-compose.yml
version: '3.4'
networks: { intr: { external: true } }
volumes:
wp_db_data: { driver: "local" }
services:
wp:
image: wordpress
networks: [ "intr" ]
volumes:
- ./www:/var/www/html
environment:
WORDPRESS_DB_HOST: wp_db:3306
WORDPRESS_DB_PASSWORD: pass
ports: [ 8001:80 ]
wp_db:
image: mysql:5.7
networks: [ "intr" ]
volumes:
- wp_db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: pass
MYSQL_DATABASE: wordpress
MYSQL_USER: user
MYSQL_PASSWORD: pass
構築
docker-compose.yml
を置いたディレクトリで下記のコマンドを実行
cmd
docker network create intr
docker-compose up -d
動作確認
[フロント画面]:http://localhost:8001
[管理画面]:http://localhost:8001/wp-admin
補足
docker-compose.yml
に定義した内容の補足
- networks
- 将来的に別の
docker-compsoe.yml
で定義したコンテナからのアクセスを考慮し、共通リンク用のネットワークを作成してからコンテナを立ち上げるようにしています。(不要の場合は削除してよいです。) - そのため、
docker-compose up -d
の前に、docker network create intr
を実行して事前にネットワークを作っています。 -
docker network ls
で既存のnetworkの一覧を確認できます。
- 将来的に別の
- volumes
- データを永続化させるためにトップレベルに
data volumes
を指定しています。 - そのため、コンテナを再構築することになっても
data volumes
さえ消さなければデータは無事です。 - 今回、Docekr for Windowsを標準のまま利用しているので、Mysqlに登録されたデータは
Hyper-V
で作成した仮想マシンMobyLinuxVM
にマウントされています。 -
docker-compose down -v
を実行するとdata volumes
も消えるのでデータは消失します。 -
docker volumes ls
で 既存のvolumes一覧を確認できます。
- データを永続化させるためにトップレベルに
- services
- Wordpress(wp)とMysql(wp_db)のコンテナを立ち上げています。
- wpではホスト側のエディタ等を使用してWordpressのカスタマイズが出来るようにコンテナ内の
/var/www/html
をマウントしてます。 - wpではホスト側の
8001番ポート
とコンテナ側の80番ポート
をマッピングしているので、localhost:8001
でブラウザからアクセスして動作を確認することができます。 - wp_dbのコンテナの中には以下のコマンドで入ることができます。
docker-compose exec wp_db sh
- コンテナの中に入ったら、下記のようなMysqlのコマンドでDBの参照等を行うことができます。
mysql -uuser -ppass wordpress
以上です!