このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

バインドマウントでWordPressコンテナの構築②

 「バインドマウントでWordPressコンテナの構築①」の続きです。Docker Composeコマンドを使って、バインドマウント機能を用いて、WordPressコンテナを構築していきます。

「バインドマウントでWordpressコンテナの構築」は次の2部に分けて解説しています。

作成するコンテナのイメージは下図のとおりです。

不要なDockerオブジェクトの削除

まず、不要なDockerオブジェクトをすべて削除しておきます。

以下のコマンドを実行します。

・「docker system prune -a」コマンドを実行します。

Are you sure you want to continue? [y/N] の質問には「y」と入力します。

PS C:\Users\joeac> docker system prune -a
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y
Deleted Containers:
92033674508c22ef1b32925d07680e567eb61a81bc1a081ef6a93c6776788399
6dffb53fc77e4c8d077e75e6ab2e7f07b25f69325bd2f2b65f88ed7f8444d8b5

Deleted Networks:
wordpress1_default

Deleted Images:
untagged: wordpress:6.5
untagged: wordpress@sha256:e61ec4b26e768f5068fbf118e3701529fe6399d1910a66cafb4a01983e52863d
deleted: sha256:bd7cf29c56a85d78b276968fc568df755e1d53ccb4fa61f8a8537725e58326dd
deleted: sha256:ae7d2d553b85ad697c639272e4e82a73401aead6bea71001f23e452be7e41ff3
deleted: sha256:3f91ff775f309dd6328de42cb767736e97bc3a25bf10be6a77032f170fb08503
deleted: sha256:b1ce06c34404c88a82fd6670c8c111b24665dba91710d34ab77afde0e86acfcd
deleted: sha256:7781706893c5d965b0eeaa45cffe90da72a370249fe93fbdedbf993d71819157
deleted: sha256:66f605aba20e3a540d8d46dc7c05f5768af72f98bb870d971645fd9f6993c982
deleted: sha256:22a352b8859db06b7ca53779017d6bccb61e07e8a3a1d3fe6ba84afcae8ba62b
deleted: sha256:713d0a3587d1e3bc1ed8846125f367d31eac6bc9ef5a527ed0f597fe97c1e41d
deleted: sha256:58b020b322768d2c93538026be0ec785edb541b7f28aa636c2844cb9ef788ffb
deleted: sha256:9846b8e10b5edb5e24d5044a63357754057e4e6b00132545b00019e4aea11afc
deleted: sha256:8233671601deae28a81c117944889d8908e38822aec6e35dbd209b9ed5893baf
deleted: sha256:63e5c449ab93a9ef33083f821a52f42dc54489ce516d0a4daf2b63129808f846
deleted: sha256:d0b3c8503c0b5dc8c50adb682680c1821c2362dc647f9496ff6da2b00dd901bf
deleted: sha256:c5cc4b106457a89de1fbeea596285cc0378c9a03db5eb92450d2a97bcb7c65f3
deleted: sha256:f1081009fe495b32804fd365eaa6933b9aefed7bc8692a7faeda9a5e79448001
deleted: sha256:a84707a2f7c991f90ba99ca39f907f201331361dbea7a43b9a3386af9a82be07
deleted: sha256:2d13dcf73c660764fc071cee00540dbb185c394a5f3ae62b54fcb7bda6ffd0f5
deleted: sha256:33bb35280735a6471306974bb1cb66abfd9edb686327d0fca7fac47ca6bfc6b4
deleted: sha256:f11b0bf8d46e7ccf1bbd96f417f06be0e4082adb292f9cfcf6900d58cd85dbe1
deleted: sha256:60908d778b5a0d0563cee37390f7c7370b7226a35e77dcf35ee1ede998fbc66c
deleted: sha256:e4df10d7e92fa157bcd347568ff345f6ffab9caa434257d937ecce2fac91cad8
deleted: sha256:a483da8ab3e941547542718cacd3258c6c705a63e94183c837c9bc44eb608999
untagged: mariadb:10.8
untagged: mariadb@sha256:456709ab146585d6189da05669b84384518baecd83670c9e5221f8c20a47cf1e
deleted: sha256:d198cd11e8fce9d331f9f90c93406eb8533399812b7946cbabf6242325e534e8
deleted: sha256:625166392dfd64d437dc33c0df475d36df2c7ae1322b4493453ae2326bfe525a
deleted: sha256:2074c746db89c132665f980b8138eaa62d3066fa2ab937feb2028a52b8b02c7b
deleted: sha256:2b447039993cc0cbd39f81b224548959d2a66aa9391e1210ff138cffa5aae14a
deleted: sha256:862e08614baf14b3a70e4d05b0f250014ff49b7eb0e22224b2b796df0e916207
deleted: sha256:161fcbe39e24efa8f649c0fca37e230821dce2b5eb3ed2b45e0196aecd51183c
deleted: sha256:b4c9ca4e1e132efbf68176a98777551027c89cca182b1416c459427c61aa5c8f
deleted: sha256:cf4669588596dad2da86c26bea5360c3b11340dd2f03faea1812417915eb4d28
deleted: sha256:966e94ab6e166fb358a208cfd8169d22dea352501c96700eb7f45092a2962ee6

Total reclaimed space: 1.114GB
PS C:\Users\joeac>

・「docker system prune -a」コマンドで削除されなかったDockerオブジェクトは、個別に削除しておきます。

compose.yaml の作成

・ディレクトリの作成と移動

Docker Composeでコンテナを作成するには、「compose.yaml」ファイルが必要になります。

 デフォルトでは、カレントディレクトリにある「compose.yaml」ファイルが読み込まれるため、作業ディレクトリに移動しておきます。

・「cd desktop/docker」コマンドを実行します。

PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker>

 「compose.yaml」ファイルを保存する「wordpress1」ディレクトリを作成して、作成したディレクトリに移動します。次のコマンドを実行します。

  • 「mkdir wordpress2」コマンド
  • 「cd wordpress2」コマンド
PS C:\Users\joeac\Desktop\docker> mkdir wordpress2

    Directory: C:\Users\joeac\Desktop\docker

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2024/04/07    14:14                wordpress2

PS C:\Users\joeac\Desktop\docker> cd wordpress2
PS C:\Users\joeac\Desktop\docker\wordpress2>
・VSCodeの起動

VSCodeで「compose.yaml」ファイルを作成します。

・「code compose.yaml」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\apache> code compose.yaml

VSCodeが起動します。

・「compose.yaml」ファイルの編集

・「compose.yaml」ファイルを以下のように編集して保存します。

services:
  wpdb:
    image: mariadb:10.8
    environment:
      MARIADB_ROOT_PASSWORD: root-pass
      MARIADB_DATABASE: database
      MARIADB_USER: wp-user
      MARIADB_PASSWORD: wp-pass
    volumes:
      - db-data:/var/lib/mysql

  wordpress:
    image: wordpress:6.5
    depends_on:
      - wpdb
    environment:
      WORDPRESS_DB_HOST: wpdb
      WORDPRESS_DB_NAME: database
      WORDPRESS_DB_USER: wp-user
      WORDPRESS_DB_PASSWORD: wp-pass
    ports:
      - "80:80"    
    volumes:
      - ./html:/var/www/html
volumes:
  db-data:

上の定義の意味は、以下のコンテンツで解説しています。

バインドマウントでWordPressコンテナの構築①

このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。 バインドマウントでWordPressコンテナの構築① ここでは、バインドマウント機能を用い…

コンテナの作成と実行

・「docker compose up -d」コマンドを実行します。

このコマンドは、「compose.yaml」ファイルを配置した場所で実行する必要があります。

PS C:\Users\joeac\Desktop\docker\wordpress2> docker compose up -d
[+] Running 31/2
 ✔ wordpress 21 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                             12.2s
 ✔ wpdb 8 layers [⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                16.1s
[+] Running 2/4
 - Network wordpress2_default        Created                                                                       1.1s
 - Volume "wordpress2_db-data"       Created                                                                       1.0s
 ✔ Container wordpress2-wpdb-1       Started                                                                       0.6s
 ✔ Container wordpress2-wordpress-1  Started                                                                       0.8s

 「Container wordpress2-wpdb-1」と「Container wordpress2-wordpress-1」というログが、表示されたら、コンテナが作成されています。

・Docker Desktopでコンテナを確認します。

 MariaDBとWordPressの2つのコンテナが作成されて動作しているため、コンテナを示すアイコンが緑色になっています。

コンテナが、緑色になってない場合は、何らかの問題が発生しています。

「compose.yaml」の定義の間違いが疑わしいので、トラブルシューティングを行ってください。

「./wordpress2」ディレクトリの確認

「./wordpress2」ディレクトリ内のファイルとディレクトリを確認します。

・「ls」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\wordpress2> ls

    Directory: C:\Users\joeac\Desktop\docker\wordpress2

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
da---          2024/04/07    14:26                html
-a---          2024/04/07    14:23            571 compose.yaml

「html」ディレクトリが作成されていることが確認できます。

・「ls html」コマンドを実行します。

「html」ディレクトリ内のディレクトリやファイルが表示されます。

PS C:\Users\joeac\Desktop\docker\wordpress2> ls html

    Directory: C:\Users\joeac\Desktop\docker\wordpress2\html

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
da---          2024/04/03     3:12                wp-admin
da---          2024/04/03     3:12                wp-content
da---          2024/04/03     3:12                wp-includes
-a---          2024/04/04     2:51            261 .htaccess
-a---          2020/02/06    15:33            405 index.php
-a---          2024/01/01     9:02          19915 license.txt
-a---          2023/12/08    23:13           7401 readme.html
-a---          2024/02/13    23:19           7387 wp-activate.php
-a---          2020/02/06    15:33            351 wp-blog-header.php
-a---          2023/06/14    23:11           2323 wp-comments-post.php
-a---          2024/04/04     2:49           5512 wp-config-docker.php
-a---          2023/11/23     2:44           3012 wp-config-sample.php
-a---          2024/04/07    14:26           5616 wp-config.php
-a---          2023/05/31     3:48           5638 wp-cron.php
-a---          2022/11/27     6:01           2502 wp-links-opml.php
-a---          2023/07/16    21:16           3927 wp-load.php
-a---          2024/01/17     2:31          50917 wp-login.php
-a---          2023/09/16    15:50           8525 wp-mail.php
-a---          2024/03/02    19:47          28427 wp-settings.php
-a---          2023/06/20     3:27          34385 wp-signup.php
-a---          2023/06/22    23:36           4885 wp-trackback.php
-a---          2024/03/02    22:49           3246 xmlrpc.php

 ホストのディレクトリとコンテナ内のディレクトリがバインドマウントされていることが分かります。

「index.php」ファイルの確認

・「code ./html/index.php」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\wordpress2> code ./html/index.php

「index.php」ファイルの内容が表示されます。

WordPressにアクセスする

・Webブラウザを起動して、URLに「localhost」と入力します。

WordPressの初期セットアップのページが表示されます。

・「日本語」を選択して「次へ」ボタンをクリックします。

日本語で、WordPressの初期セットアップが進んでいきます。

ここでは、WordPressの初期セットアップの完了まで進めて、サイトの構築までを行いません。

 バインドマントを利用することで、ホスト側でファイルやディレクトリを操作できるようになります。ホスト側でのファイルの変更がコンテナ側で反映されます。

関連コンテンツ