- 03-5820-1777平日10:00〜18:00
- お問い合わせ
最近WordPressの案件をやるようになったので、開発用としてWordPressをDockerコンテナ上で動作させてみました。
適当なディレクトリを作成し、その中にファイルを作成していきます。
mysqlとwordpressのコンテナの為のdocker-compose.ymlファイルを作成します。
version: '3'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
MYSQL_USER: admin
MYSQL_PASSWORD: password
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: admin
WORDPRESS_DB_PASSWORD: password
以下のコマンドで起動します。
docker-compose up -d
以下のコマンドで起動しているコンテナを確認します。
docker ps
以下の様に、wordpressとmysqlのコンテナが表示されれば成功です。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b0e2b1738cf wordpress:latest "docker-entrypoint.s…" 37 seconds ago Up 33 seconds 0.0.0.0:8000->80/tcp docker-wordpress-wordpress-1
b4b51347103f mysql:5.7 "docker-entrypoint.s…" 37 seconds ago Up 35 seconds 3306/tcp, 33060/tcp docker-wordpress-db-1
http://localhost:8000にアクセスしwordpressの初期化を行います。
作成したDockerコンテナを停止すると初期状態に戻ってしまうので、データを永続化して状態を保持しておく方が良いです。
データを保持するのにvolumeというものを利用してホストのディレクトリとDockerコンテナ内のディレクトリをマウントします。
カレントディレクトリに次のディレクトリを作成します。
version: '3'
services:
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql ←追加個所
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
MYSQL_USER: admin
MYSQL_PASSWORD: password
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./wp_data:/var/www/html ←追加個所
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: admin
WORDPRESS_DB_PASSWORD: password
例では以上2つを永続化してます。永続化データはホストのカレントディレクトリの「db_data」、「wp_data」ディレクトリに保管されます。
「db_data」、「wp_data」内のファイル修正やファイル追加をするとコンテナ内のディレクトリに反映されます。
コンテナへアクセスしファイル編集などを行いたい場合は、以下のコマンド実行するとコンテナ内でbashを起動する事が出来ます。
docker exec -it <コンテナID> bash