Fact of Life

音楽と食とビールが好きなWebエンジニアのブログ

Dockerを使ってWordPressの仮想環境構築をしてみた

スポンサーリンク

前回の記事でDockerの触り部分まで手を出してみましたが、今回は少しだけ潜ってみてDockerの使い道を探ってみることにしました。インストールなど、Dockerの導入部分については前回の記事を見てください。

www.fact-of-life.com

仕事でも必要になったのでWordPressの環境を作り、備忘録のために書き残します。

WordPressの仮想環境構築

WordPressとMySQLのDockerイメージ取得

まずはWordpressのDockerイメージの取得をします。latestのイメージを取得するのは気が引けたので、今回はバージョン指定で取得することにしました。

$ docker pull wordpress:4.6.1-php7.0

WordPressにはMySQLが必要なので、そちらもDockerイメージを取得します。

$ docker pull mysql:5.7.15

Dockerイメージを取得したら、念のため確認を行います。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wordpress           4.6.1-php7.0        389038949f83        6 days ago          431.9 MB
mysql               5.7.15              18f13d72f7f0        2 weeks ago         383.4 MB

WordPressとMySQLのDockerコンテナを作成して起動

Dockerイメージの作成が完了したので、お次はDockerコンテナを作成して起動して見ます。まずはMySQLから。

docker run --name mysql-wp -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.15

myswl-wpはコンテナ名、mysql:5.7.15はDockerイメージの[REPOSITORY]と[TAG]です。上記はDockerコンテナの作成でしたが、同時にデータベースの作成もできます。

$ docker run --name mysql-wp -e MYSQL_DATABASE=wp-db -e MYSQL_USER=root -e MYSQL_PASSWORD=root  -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.15

これでデータベースの作成も完了しました。早速起動して入ってみましょう。

$ docker run -it --link mysql-wp:mysql --rm mysql:5.7.15 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.15 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

MySQLの環境が整ったということで、続いてはWordPressのDockerコンテナを作成します。コンテナを作成する際に、MySQLとつなぎつつ、さらにnginx起動して繋げちゃいます。

$ docker run --name wordpress-hoge --link mysql-wp:mysql -p 8080:80 -d wordpress:4.6.1-php7.0

指定ポート込みのlocalhost(この場合はlocalhost:8080)を起動し、WordPressの画面が表示されれば環境構築は完了です。あとは通常のWordPressと同様に設定をしていきます。

WordPressのDockerコンテナを使って詰まったこと

今、仕事で実際にWordPressのDockerコンテナを使用して実験をしているのですが、少し詰まったことがあるので共有します。

Dockerコンテナへの入り方は?

WordPressの管理画面上でテンプレートいじったらエラーが出て抜け出せなくなること、ありますよね。その際にサーバーのファイルを直接いじろうと思ったのですが・・Dockerコンテナへの入り方ってなんだっけ?

$ docker exec -it wordpress-hoge /bin/bash

上記コマンドで入れるんですが、ここでまた障壁が。入ってみたらviコマンドが使えませんでした。。なので入れることに。

apt-get install vim
E: Unable to locate package vim

なんとエラーが出ました。ということで、以下の方法で解決することに。

apt-get update
apt-get install vim

仮想環境に入って作業ができるようになるところまでは必要ですね。

まとめ

実際に仕事でDocker環境を使って作業(というか環境構築の実験)をしているのですが、正直WordPressの環境ならMAMPで良かったのかなとかちょっと思ってみたり。(MAMPの環境構築については以前記事にしましたので興味があったらそちらを見てください)

www.fact-of-life.com

まぁ、でも実際にコンテナ同士を繋げてみて作ってみるとイメージはしやすくなります。それにマシンの中が汚くならなくなるのもいいですよね。また違う環境が必要になったらDockerを使ってみようと思います。