2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker を CentOS 7.6 (1810) にインストールして簡単に WordPress を起動する

Last updated at Posted at 2019-08-30

最近Dockerを使うようになってきたので、DockerコンテナでサクッとWordPressを立ち上げる方法を試してみました。
今回はDocker-CE(無料のコミュニティエディション)を使用してWordPressをインストールする方法を紹介します。

##ホストOSバージョンとカーネルバージョン
今回したホストOSはCentOS 7.6 (1810)となります。

[root@cent76 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

##Dockerに必要なパッケージをインストール
必須パッケージを先にインストールします。

[root@cent76 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
* base: ftp-srv2.kddilabs.jp
* extras: ftp-srv2.kddilabs.jp
* updates: ftp-srv2.kddilabs.jp

(省略)

===============================================================================================================
Package Arch Version Repository Size
===============================================================================================================
Updating:
 lvm2 x86_64 7:2.02.180-10.el7_6.8 updates 1.3 M
Updating for dependencies:
device-mapper x86_64 7:1.02.149-10.el7_6.8 updates 293 k
device-mapper-event x86_64 7:1.02.149-10.el7_6.8 updates 189 k
device-mapper-event-libs x86_64 7:1.02.149-10.el7_6.8 updates 188 k
device-mapper-libs x86_64 7:1.02.149-10.el7_6.8 updates 321 k
lvm2-libs x86_64 7:2.02.180-10.el7_6.8 updates 1.1 M

Transaction Summary
===============================================================================================================
Upgrade 1 Package (+5 Dependent packages)

(省略)

Complete!

##安定版Dockerリポジトリを追加
Dockerをインストールするために、Dockerリポジトリを追加します。

[root@cent76 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

##Docker-CEインストール
Docker-CEとその他必要なパッケージをインストールします。

[root@cent76 ~]# yum install -y docker-ce docker-ce-cli containerd.io
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp-srv2.kddilabs.jp
* extras: ftp-srv2.kddilabs.jp
* updates: mirror.navercorp.com
(省略)
===============================================================================================================
Package Arch Version Repository Size
===============================================================================================================
Installing:
containerd.io x86_64 1.2.6-3.3.el7 docker-ce-stable 26 M
docker-ce x86_64 3:19.03.1-3.el7 docker-ce-stable 24 M
docker-ce-cli x86_64 1:19.03.1-3.el7 docker-ce-stable 39 M
Installing for dependencies:
audit-libs-python x86_64 2.8.4-4.el7 base 76 k
checkpolicy x86_64 2.5-8.el7 base 295 k
container-selinux noarch 2:2.107-1.el7_6 extras 39 k
libcgroup x86_64 0.41-20.el7 base 66 k
libsemanage-python x86_64 2.5-14.el7 base 113 k
policycoreutils-python x86_64 2.5-29.el7_6.1 updates 456 k
python-IPy noarch 0.75-6.el7 base 32 k
setools-libs x86_64 3.3.8-4.el7 base 620 k
Updating for dependencies:
policycoreutils x86_64 2.5-29.el7_6.1 updates 916 k

Transaction Summary
===============================================================================================================
Install 3 Packages (+8 Dependent packages)
Upgrade ( 1 Dependent package)

(省略)

Complete!

##Dockerバージョン確認
今回インストールしたバージョンは「19.03.1」となります。

[root@cent76 ~]# docker version
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:21:07 2019
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

##Docker 起動
systemctl コマンドでDockerを起動します。

[root@cent76 ~]# systemctl start docker

##WordPress の docker image を取得
WordPress の Docker image を Docker Hub から取得します。

[root@cent76 ~]# docker pull wordpress
Using default tag: latest
latest: Pulling from library/wordpress
f5d23c7fed46: Pull complete
4f36b8588ea0: Pull complete
6f4f95ddefa8: Pull complete
187af28c9b1d: Pull complete
3c4135e0a3e9: Pull complete
764143bdfc93: Pull complete
3a141d427998: Pull complete
10a514d45c55: Pull complete
38caab815709: Pull complete
7be2532c1013: Pull complete
4af1c0fea247: Pull complete
88c32579f6b6: Pull complete
4435d7ad1fed: Pull complete
eb012b532a23: Pull complete
b45b6b08a0f1: Pull complete
57a069704459: Pull complete
c7266b68617f: Pull complete
637472e69ed3: Pull complete
748eaacd7f1d: Pull complete
0d7f34f2c87d: Pull complete
Digest: sha256:fdecb6fc92b04d88419544722ac1679158c12eb8f519b83b0480a6375e823dec
Status: Downloaded newer image for wordpress:latest
docker.io/library/wordpress:latest

##WordPress に必要な MySQL の docker image を取得
今回はMySQL5.7をWordpress用のDBとし、こちらも Docker Hub から取得します。

[root@cent76 ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
0a4690c5d889: Pull complete
98aa2fc6cbeb: Pull complete
0777e6eb0e6f: Pull complete
2464189c041c: Pull complete
b45df9dc827d: Pull complete
b42b00086160: Pull complete
bb93567627c7: Pull complete
419b68a254a1: Pull complete
8c4bc5b87c07: Pull complete
59234e88c262: Pull complete
2406ac6e266f: Pull complete
Digest: sha256:540488d8f0e04c1077d17934d1c1511fe417e2221dff508ce4621f5efe6131db
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

##取得済みイメージ一覧表示
取得したイメージを確認します。取得した wordpress と mysql が存在していればOKです。

[root@cent76 ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
wordpress latest 02126202b6ea 32 hours ago 502MB
mysql 5.7 f6509bac4980 2 weeks ago 373MB

##コンテナを生成して起動
取得したイメージを使用して、WordPressとMySQLのコンテナを生成・起動します。

[root@cent76 ~]# docker container run --name wp-mysql -e MYSQL_ROOT_PASSWORD=hoge -d mysql:5.7
a954a2f27251e30ca861583c722d277152e714708dfcfe2576c143f964d33037
[root@cent76 ~]# docker container run --name samplewp -d -p 80:80 --link wp-mysql:mysql wordpress
427c5e2ed465802d8ac709f834cdafb43baaa2d900b4b9f76d6b97354f0c6f04

##実行中コンテナ一覧の確認
起動したコンテナ2つが実行状態であることを確認します。

[root@cent76 ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
427c5e2ed465 wordpress "docker-entrypoint.s…" 12 minutes ago Up 12 minutes 0.0.0.0:80->80/tcp samplewp
a954a2f27251 mysql:5.7 "docker-entrypoint.s…" 16 minutes ago Up 16 minutes 3306/tcp, 33060/tcp wp-mysql

※ここで2つのコンテナが起動されていなかったら「docker logs samplewp」「docker logs wp-mysql」コマンドでdockerログを確認します。

##WordPressに接続
ブラウザから「http://<ホストのIP>」でアクセスします。
wordpress01.png

必要な情報を入力し、「WordPress をインストール」ボタンを押下します。
wordpress02.png

最終的に以下の画面が表示されればWordPressインストール完了です。
wordpress03.png

これでWordPressを色々操作できるようになります。
wordpress04.png

##WordPressコンテナ内で作業する
WordPressのコンテナに接続します。ソースの修正等はこれで行います。

[root@cent76 ~]# docker container exec -it samplewp /bin/bash
root@427c5e2ed465:/var/www/html# ls -l
total 200
-rw-r--r--. 1 www-data www-data 420 Nov 30 2017 index.php
-rw-r--r--. 1 www-data www-data 19935 Jan 1 2019 license.txt
-rw-r--r--. 1 www-data www-data 7447 Apr 8 22:59 readme.html
-rw-r--r--. 1 www-data www-data 6919 Jan 12 2019 wp-activate.php
drwxr-xr-x. 9 www-data www-data 4096 Jun 18 17:50 wp-admin
-rw-r--r--. 1 www-data www-data 369 Nov 30 2017 wp-blog-header.php
-rw-r--r--. 1 www-data www-data 2283 Jan 21 2019 wp-comments-post.php
-rw-r--r--. 1 www-data www-data 2808 Aug 7 06:55 wp-config-sample.php
-rw-r--r--. 1 www-data www-data 3172 Aug 7 06:55 wp-config.php
drwxr-xr-x. 6 www-data www-data 84 Aug 7 07:17 wp-content
-rw-r--r--. 1 www-data www-data 3847 Jan 9 2019 wp-cron.php
drwxr-xr-x. 20 www-data www-data 8192 Jun 18 17:50 wp-includes
-rw-r--r--. 1 www-data www-data 2502 Jan 16 2019 wp-links-opml.php
-rw-r--r--. 1 www-data www-data 3306 Nov 30 2017 wp-load.php
-rw-r--r--. 1 www-data www-data 39551 Jun 10 13:34 wp-login.php
-rw-r--r--. 1 www-data www-data 8403 Nov 30 2017 wp-mail.php
-rw-r--r--. 1 www-data www-data 18962 Mar 28 19:04 wp-settings.php
-rw-r--r--. 1 www-data www-data 31085 Jan 16 2019 wp-signup.php
-rw-r--r--. 1 www-data www-data 4764 Nov 30 2017 wp-trackback.php
-rw-r--r--. 1 www-data www-data 3068 Aug 17 2018 xmlrpc.php

##WordPress用のMySQLに接続してみる
あまり中身を気にする必要はないかもしれませんが、もちろんコンテナ内のMySQLにも接続できます。

[root@cent76 ~]# docker container exec -it wp-mysql /bin/bash
root@a954a2f27251:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 5.7.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, 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> select @@version;
+-----------+
| @@version |
+-----------+
| 5.7.27 |
+-----------+
1 row in set (0.00 sec)

##Dockerコンテナの停止
コンテナ停止前に起動状態を確認します。

[root@cent76 ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
427c5e2ed465 wordpress "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:80->80/tcp samplewp
a954a2f27251 mysql:5.7 "docker-entrypoint.s…" About an hour ago Up About an hour 3306/tcp, 33060/tcp wp-mysql

コンテナが起動しているので停止します。

[root@cent76 ~]# docker container stop samplewp
samplewp
[root@cent76 ~]# docker container stop wp-mysql
wp-mysql
[root@cent76 ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

実行中コンテナがなくなりました。

##Dockerコンテナの起動
コンテナを起動します。

[root@cent76 ~]# docker container start wp-mysql
wp-mysql
[root@cent76 ~]# docker container start samplewp
samplewp
[root@cent76 ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
427c5e2ed465 wordpress "docker-entrypoint.s…" About an hour ago Up 11 seconds 0.0.0.0:80->80/tcp samplewp
a954a2f27251 mysql:5.7 "docker-entrypoint.s…" 2 hours ago Up 20 seconds 3306/tcp, 33060/tcp wp-mysql

コンテナが起動しました。

##さいごに
Docker を利用すれば、使い捨てのWordPressがサクッとできるので、私はソース変更やプラグインの検証等に使用しています。

※今回の記事は、自身のサイトから転載しています。
https://dekiruengineer.com/engineer/wordpress-for-docker/

2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?