お金をかけずにサーバーの勉強をしよう

WordPressを入れてみる(Docker編)

2022年6月1日

メニューへ戻る

Ubuntu Server 22.04にインストールした Dockerエンジンで、WordPressのコンテナを動かしてみます。

Dockerエンジン インストール」で Dockerも入りましたし、何かコンテナを動かしてみようということで。


WordPressと言えば、ブログ収益化に欠かせないブログウェアとして知られていますが、有料のホスティング会社に契約して初めて使う人も多いかと思います。

有償といってもさして高いわけではありませんが、コストを極限まで切り詰めるために、自分の PC上で WordPressの練習ができると良いですね。

WordPressの環境構築では、本来 DBをインストールして〜から始まる一連の作業が必要ですが、Dockerを使うことで全て揃った環境を簡単に手に入れることができます。

WordPressの評価が目的であって、環境構築のテクニックの習得が目的ではない場合は、Dockerで片付けてしまうと手間がなくて良いと思います。
他のソフトでも似たようなケースはあると思いますので、その例の 1つとしてやってみます。

Dockerコンテナ作成方法はこちら(Dockerのドキュメントです)
クィックスタート: Compose と WordPress

Docker Composeという Dockerコンテナの組み合わせをある程度自動化するツールを使っています。
それでは、ドキュメントに従ってインストールしてみましょう。

と言いつつ、Docker Composeは Dockerエンジンには組み込まれていないので、まずこれをインストールします。

Docker Compose のインストールマニュアルはこちら
Docker Compose のインストール(Linux における Compose のインストール)

GitHubからダウンロードして、/usr/local/bin に配置して、実行権限を付与しています。

subro@UbuntuServer2204:~$ sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 8648k  100 8648k    0     0  5208k      0  0:00:01  0:00:01 --:--:-- 10.8M

subro@UbuntuServer2204:~$ sudo chmod +x /usr/local/bin/docker-compose

subro@UbuntuServer2204:~$ ls -l /usr/local/bin/docker-compose
-rwxr-xr-x 1 root root 8855632  5月 31 11:24 /usr/local/bin/docker-compose

subro@UbuntuServer2204:~$ /usr/local/bin/docker-compose --version
version 1.16.1, build 6d1ac21

これで Docker Composeが使えるようになりました。


ここから、WordPressの環境構築になります。
ホームディレクトリ直下に my_wordpress ディレクトリを作成して、そこに移ります。

subro@UbuntuServer2204:~$ mkdir my_wordpress

subro@UbuntuServer2204:~$ cd my_wordpress

ここに docker-compose.yml ファイルを以下の内容で作ります。

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

Docker Compose用の YAMLファイルができました。

subro@UbuntuServer2204:~/my_wordpress$ ls -l
合計 4
-rw-rw-r-- 1 subro subro 551  5月 31 10:57 docker-compose.yml

MySQL 5.7のコンテナと WordPress最新版のコンテナを立ち上げて連携させるようです。
MySQLのデータはコンテナ外の永続的ストレージに入れるようになっていて、コンテナを止めてもデータが残るようになるのでしょう。


コンテナの作成と連携をします。

subro@UbuntuServer2204:~/my_wordpress$ sudo /usr/local/bin/docker-compose up -d
Creating network "mywordpress_default" with the default driver
Creating volume "mywordpress_db_data" with default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
c1ad9731b2c7: Pull complete
54f6eb0ee84d: Pull complete
cffcf8691bc5: Pull complete
89a783b5ac8a: Pull complete
6a8393c7be5f: Pull complete
af768d0b181e: Pull complete
810d6aaaf54a: Pull complete
81fe6daf2395: Pull complete
5ccf426818fd: Pull complete
68b838b06054: Pull complete
1b606c4f93df: Pull complete
Digest: sha256:7e99b2b8d5bca914ef31059858210f57b009c40375d647f0d4d65ecd01d6b1d5
Status: Downloaded newer image for mysql:5.7
Pulling wordpress (wordpress:latest)...
latest: Pulling from library/wordpress
42c077c10790: Pull complete
8934009a9160: Pull complete
5357ac116991: Pull complete
54ae63894b5a: Pull complete
772088206f85: Pull complete
3b81c5474649: Pull complete
c62a528527ae: Pull complete
4386b832d751: Pull complete
23b4fb100c69: Pull complete
9339b1ed77ad: Pull complete
6ad6583eba04: Pull complete
05e5f60f6add: Pull complete
744e7c78b843: Pull complete
d23996fdbd01: Pull complete
e47d68ad6905: Pull complete
06463c6b8395: Pull complete
935032d9891a: Pull complete
7b825b5ea5ac: Pull complete
4f882ef71278: Pull complete
ed9050832178: Pull complete
39f9aa71aa04: Pull complete
Digest: sha256:06c850f59d7bd1b96462fc6287e88f0cd08724077e54d9872c9002449b74309c
Status: Downloaded newer image for wordpress:latest
Creating mywordpress_db_1 ...
Creating mywordpress_db_1 ... done
Creating mywordpress_wordpress_1 ...
Creating mywordpress_wordpress_1 ... done

少しかかって構築が終わりました。


それでは、WEBブラウザでアクセスしてみます。
Dockerコンテナは独自ネットワークで内で動いていますが、ホストOSの 8000/tcpへの通信をコンテナの 80/tcpに転送するようにコンテナ開始時に指定していますので、Ubuntu Server 22.04の 8000/tcpへアクセスします。

私のPCの環境ではこう。
http://UbuntuServer2204:8000

このような画面になりますので、[日本語]を選択し、[次へ]を押します。
WordPress 1

サイトのタイトル: お好きに
ユーザー名:   WordPressの管理者IDです
パスワード:   ユーザー名に対するパスワード
メールアドレス:  ユーザー名に紐づくメアド
[WordPressをインストール]を押します。
WordPress 2

[ログイン]を押します。
WordPress 3

先程作ったユーザー名とパスワードでログインしましょう。
WordPress 4

WordPressの初期画面ですかね。(知らんけど)
WordPress 5


色々イジってみましたが、プラグインもインストールできましたし「WordPressでこんな風にできるんだね」という検証に使えそうです。

実際にWordPressをホスティングしている環境では変更がそのままインターネットに晒されてしまいますし、こういったローカル環境があると便利そうです。

Dockerでやりましたので非常に短い時間で構築することができましたし、Dockerの volumeを削除しない限りはデータは永続しますので結構使えるんじゃないかと思います。

ここまで無料でできるのを使わない手はないよなと思いました。

1冊ですべて身につくWordPress入門講座 [ Mana ]

価格:2,200円
(2022/6/1 16:35時点)
感想(2件)

WordPress 本格Webサイト構築パーフェクトマスター [第2版] [ 音賀鳴海 ]

価格:3,080円
(2022/6/1 16:36時点)
感想(0件)