LoginSignup
6
2

More than 3 years have passed since last update.

docker-composeでWordpressの構築 (Windows)

Posted at

概要

  • 手元の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

以上です!

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2