1
0

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 3 years have passed since last update.

DockerでWordPress環境を構築する方法

Last updated at Posted at 2021-08-07

#はじめに

前回、DockerでApache、nginx、MySQLのコンテナ構築方法を紹介させていただいた。
DockerでApache、nginx、MySQLを構築するシンプルな方法
※Docker完全初心者の方は↑を参考程度に確認すると良い。

今回はDockerでWordPressを構築する方法を記述したい。

動作環境

動作環境は自宅WindowsパソコンにDockerをインストールしている。
・自宅PC
・OS:Windows10

システム構成-コンテナは2つ

まず以下の2つに分けてコンテナを作成し、それぞれミドルウェアをインストールしていく。
①WordPress用コンテナ
・WordPress
・Apache
・PHP実行環境

②MySQL用コンテナ
・MySQL

WordPress構築手順

1.ネットワーク作成

Dockerでは普通にコンテナを作ると、コンテナ同士は通信できない。
「ネットワーク」というリソースを作成し、同じネットワークに所属させる必要がある。

■ネットワーク作成コマンド

docker network create wordpress-network

コマンドはdoceker network create ネットワーク名で作成できる。
「wordpress-network」に2つのコンテナを所属させていく。

■ネットワーク詳細確認

docker network inspect wordpress-network

docker network inspect <ネットワーク名>

<出力結果例>

> docker network inspect wordpress-network
[
    {
        "Name": "wordpress-network",
        "Id": "286023ed2d2522ba69987ef342458633463783e6ca2f18fa1c350935855ef40a",
        "Created": "2021-07-25T02:39:04.7728767Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.19.0.0/16",
                    "Gateway": "172.19.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

こんな感じ。
Docker内のネットワーク一覧を観たいなら

> docker network ls
NETWORK ID     NAME                DRIVER    SCOPE
ae6193baa836   bridge              bridge    local
2935816942a2   host                host      local
d7965802ece4   none                null      local
286023ed2d25   wordpress-network   bridge    local

ネットワークを削除したいなら

docker network rm <ネットワーク名>

ネットワークを作成したら次にMySQL用コンテナを作成していく。

2.MySQLコンテナ作成(オプション9つ)

WordPress用のデータベースがないとWordを作成できないので、まずMySQLを作成する。

■MySQLコンテナの作成

docker run --name mysql-db01 -dit --net=wordpress-network -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress-db1 -e MYSQL_USER=testuser -e MYSQL_PASSWORD=password mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password

<オプション説明>
--name =コンテナ名
-dit =バックグラウンド実行
-net =ネットワーク名
-e MYSQL_ROOT_PASSWORD =rootユーザのパスワード
MYSQL_DATABASE =データベース領域名
MYSQL_USER =mysqlユーザ名
-e MYSQL_PASSWORD =mysqlユーザのパスワード
mysql イメージ名
--character-set-server 文字コード
--collation-server 照合順序指定
--default-authentication-plugin 認証方式 (MySQL8.0からデフォルトの認証方式が変更されたが、まだ古い認証方式の方が対応しているので、古い方を指定)

■作成結果例

> docker ps -a
CONTAINER ID   IMAGE        COMMAND                  CREATED         STATUS                    PORTS                 NAMES
9bfad82ef88e   mysql        "docker-entrypoint.s…"   8 seconds ago   Up 6 seconds              3306/tcp, 33060/tcp   mysql-db01

mysql-db01というコンテナが作成された。

3.WordPressコンテナを作成

最後にWordPressコンテナを作成する。

注意点としては以下。
☆同じネットワークを指定する事
★データベースのコンテナ名、データベース領域名、ユーザ名、パスワードを、MySQLコンテナ作成時の値と同じにする。

■WordPressコンテナ作成

docker run --name wordpress01 -dit --net=wordpress-network -p 8085:80 -e WORDPRESS_DB_HOST=mysql-db01 -e WORDPRESS_DB_NAME=wordpress-db1 -e WORDPRESS_DB_USER=testuser -e WORDPRESS_DB_PASSWORD=password wordpress

<オプション説明>
--name=wordpressのコンテナ名
-dit=バックグラウンド実行
-net=ネットワーク名
-p ポート指定(ローカル:パブリック)
-e WORDPRESS_DB_HOST=データベースのコンテナ名
-e WORDPRESS_DB_NAME=データベース領域名
-e WORDPRESS_DB_USER=データベースのユーザ名
-e WORDPRESS_DB_PASSWORD=データベースユーザのパスワード
wordpress イメージ名

> docker ps -a
CONTAINER ID   IMAGE        COMMAND                  CREATED         STATUS                    PORTS                                   NAMES
087da6ef9f10   wordpress    "docker-entrypoint.s…"   2 seconds ago   Up 2 seconds              0.0.0.0:8085->80/tcp, :::8085->80/tcp   wordpress01

wordpress01というコンテナが作成された。

4.接続確認

WordPressコンテナまで作成できたら、WordPress作成時に指定したポートで、ブラウザアクセスしてみよう。

http://localhost:8085/

下記のような画面が出ればOK。
SharedScreenshot.jpg

最後に

いかがでしたでしょうか。
ネットワークの作成、WordPressのインストールが簡単にできました。
次回は「ボリュームマウントの方法」をお伝えしようと思います。

■ご参考
DockerでApache、nginx、MySQLを構築するシンプルな方法

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?