MENU
アーカイブ
INGSTE YouTubeチャンネル

作って理解する「Docker CLI & Compose」 WordPressコンテナの起動

試験的にサーバーなどの環境を構築する場合、PC上(ホストPC)に仮想PCをインストールし、その上に更にサーバーやデータベースを用意していました。PCに直接インストールすると普段使うPCの環境に影響が出るからです。

今では技術が進化し、丸ごとの仮想PCではなく、ホストPCの機能の一部を効率よく共有できるようになりました。

そのような技術の一つであるDockerを紹介します。一例として、ブログやWebサイト作成によく使用されているWordPress環境を作り、Dockerの概要を見ていきましょう。

Windows 11とLinux (Ubuntu 24.04 LTS)で解説します。

なお、Dockerは本記事のようにコマンド(CLI)でも、マウスを使うGUI(グラフィカル ユーザー インターフェース)でも操作できます。今回はまずCLIで基本を理解し、次回以降GUIを使った方法も紹介します。

目次

Dockerの概要とメリット

仮想マシンを使い、PCの上にもう一台PCを用意する方法は便利で柔軟性はありますが、WordPressなどを動かすにはやや大がかりです。

Dockerは仮想マシンを丸ごと提供するのではなく、今使っているPC(ホストPC)の機能のうち共有して使える部分はそちらを使います。これによりメモリやCPU、ディスクスペースなどのリソースを節約できます

また、別のメリットもあります。例えばWordPressを使う場合、サーバーやデータベースの導入と設定も必要です。

でも、「WordPressでサイトを作りたい」「コーディングを学びたい」「ブログを書きたい」という場合、サーバーやデータベースを一から学ぶことが必ずしも必要であるとは限りません。

DockerではWordPress自体やサーバーなど、よく使う機能が設定された状態でセットになって提供されています。そのため、複雑なインストールや設定をせずに使い始めることができます。

このようにアプリケーションとその実行環境をまとめたセットをDocker イメージと言い、実際にPC上で動作する形にしたものを「Docker コンテナ」と言います

それで、Docker自体は、コンテナを動かすための土台となるツールです。


では、実際にDockerを使えるようにしましょう。準備ができればすぐにWordPressなどのサービスも動くようになります。

Dockerのインストール

DockerのインストールはWindowsとLinuxで少し違うので、別々に説明します。

WindowsでDockerを利用する場合は、一般的に Docker Desktop をインストールします。Docker DesktopにはDocker CLIも含まれており、コマンド操作も可能です。

まず次のサイトからDocker Desktopをインストールします。Docker Desktopは次回の記事で説明しますが、これをインストールすると今回の記事のDocker CLIも使えるようになります。

https://www.docker.com/products/docker-desktop/

サイト内の[ Download Docker Desktop ]という部分にマウスを合わせると、いくつかの選択肢が表示されます。


お使いのPCに合わせて[Download for Windows – AMD64]、もしくは[Download for Windows – ARM64]をクリックします。この記事ではWindows – AMD64を用いて解説します。

ダウンロードしたインストーラーを開いて実行します。

しばらくするとインストールが終わりPCの再起動を求められるので、[ Close and restart ]をクリックします。

PC再起動後にDockerの使用条件への同意を尋ねられるので、Accept(受け⼊れる)をクリックします。

その後ターミナルという⽂字だらけのウインドウが表示されますが、1分以内にエンターなどの任意のキーを押して続⾏します。

後ほどDocker CLIの操作もターミナルで行います

表示されるメッセージどおりに操作していくと、Docker Desktopのウエルカムが表示されます。ここでは⼩さい字で書かれている[ Skip ]をクリックし、Docker Desktop画面を閉じます。

Docker 操作に便利なこの Docker Desktop は次の記事で解説します。

なお、Docker Desktopインストールの詳細は以下の記事の目次:「Docker Desktopのインストール」も参照してください。

変更が多かったので、念のためPC再起動後 Docker Desktop をもう一度起動させます。本記事で扱うDocker CLIも利用可能になりました。

では実際にWordPressを動かしてみましょう。

Dockerを用いてWordPressを構築

Docker CLIが動き出したので、一例としてWordPressコンテナを動作させましょう。

理解を深めるために、WordPress用のデータベースとWordPress本体を別に構築する方法と、これらを一発で行う方法をそれぞれ紹介します。

基本的な操作は、Windows 11のターミナルでも、Ubuntuの端末でも同じです。以下いずれもターミナルと記述します

なお、Windowsの場合は前もってDocker Desktopを起動させておいてください。タスクバー右側の通知領域のDocker Desktopアイコンが以下のようになれば準備完了です。この表示が出ればDocker Desktopのウィンドウは閉じても構いません。

機能を個別に構築する方法

最初にWordPressとデータベースを繋ぐネットワークをDocker内に用意します。

ターミナルを開き以下のコマンドを実行してください。

docker network create wp-net
WordPressとデータベース間のネットワークを用意

次にデータベースコンテナを用意します。以下のコマンドを実行するとDocker上で動くデータベースのイメージがダウンロードされコンテナが作られて動き始めます。次のコマンド全体をそのままターミナルに貼り付け、エンターキーを押して実行してください。

docker run -d --name wp-db --network wp-net -e MYSQL_ROOT_PASSWORD=rootpass -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wpuser -e MYSQL_PASSWORD=wppass mariadb:10.11
Docker上のWordPressで利用するためのデータベースが用意された

ターミナルが待機状態になったら、いよいよWordPress本体も用意します。
WordPressと相性の良いサーバーがセットになったイメージを用います。以下もターミナルで実行します。

docker run -d --name wordpress --network wp-net -p 8080:80 -e WORDPRESS_DB_HOST=wp-db -e WORDPRESS_DB_USER=wpuser -e WORDPRESS_DB_PASSWORD=wppass -e WORDPRESS_DB_NAME=wordpress wordpress:6.9-php8.3
WordPress本体コンテナを用意

ターミナルが待機状態になったらWordPressの準備ができました。
2,3分後にブラウザで以下のアドレスにアクセスすると、WordPressの初期画面が表示されます。

http://localhost:8080

コンテナを停止・起動するには以下のコマンドを使います。先ほどの「docker run -d –name」で名付けたコンテナ名を指定しています。また2回目以降の起動はdocker run ではないことに注意してください。

停止:
docker stop wp-db wordpress

起動:
docker start wp-db wordpress

今回の設定では、PCの再起動などでコンテナが停止するので上の方法で再起動させてください。

上で使った「 docker run -d 」を用いると次のようなことをまとめて行います

コンテナを作るためのイメージがPC上に存在するかをチェック。
なければダウンロード( pull )。
コンテナを作成(create)。
作成したコンテナを開始(start)。

どの段階でエラーが出ているかを知りたい場合などには、「docker run」ではなく、以下のコマンドでそれぞれを別々に行うこともあります。
「docker pull」、「docker create」、「docker start」。

初回に「docker run」を実行してコンテナは既に作られているので、2回目以降に起動するには「docker start」を用います。

なお、最初に作ったデータベース接続用のネットワークは、削除しない限り残っているので特に操作は必要ありません。

一気に構築する方法 (Docker Compose の利用)

上記の方法で問題なくWordPressを動かすことができますが、2つのコンテナの設定をまとめることができます。

そのためには Docker Compose という機能を使用します。

一度作成した設定ファイルを用いて、他のPCでも同じ動作環境のWordPressを利用できます。また、1つの設定ファイルなので構成を理解しやすくなります。

さらに、個別でコンテナを立ち上げる方法と違い、WordPressとデータベースをつなぐネットワークも自動で作ってくれます。

Compose (構成する)という名の通り、複数のコンテナの組み合わ方を定義する設計図のようなものを用います。これを以下で解説する docker-compose.yml ファイルに記述します。

実際の設計図のように、一度作っておくと同じ環境を再現することができます。

では、メモ帳などのテキストエディタに以下の内容をそのまま貼り付けます。

services:
  db:
    image: mariadb:10.11
    container_name: wp-db2
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: wppass
    volumes:
      - db_data:/var/lib/mysql

  wordpress:
    image: wordpress:6.9-php8.3
    container_name: wordpress2
    depends_on:
      - db
    ports:
      - "8081:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: wppass
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp_data:/var/www/html

volumes:
  db_data:
  wp_data:

わかりやすい場所にフォルダを作り以下の名前で保存します。

docker-compose.yml

ファイルを保存したフォルダにターミナルで cd コマンドを使って移動し、以下のコマンドを実行します。

フォルダ移動例: cd /users/my_account/desktop/docker

docker compose up -d
docker-compose.ymlを保存したフォルダ(ディレクトリ)に移動し実行
WordPressとデータベースコンテナが起動する

2,3分後にブラウザで以下のアドレスにアクセスすると、WordPressの初期画面が表示されます。

http://localhost:8081

コンテナを停止・起動するには以下のコマンドを使います。2回目以降の起動にも同じコマンドを用います。

停止:
docker compose down

起動:
docker compose up -d

今回の設定では、PCの再起動などでコンテナが停止するので上の方法で再起動させてください。

Docker上に構築したWordPressを使ってみる

ここまでで、Docker CLIとDocker Composeの概要を見てくることができました。せっかくなので最後に準備ができたWordPressの初期設定をしてみましょう。

まず、WordPressで使用する言語を選びます。

[次へ]をクリックし、サイトタイトル、ユーザー名、パスワードを設定します。自分のメールアドレスも記入し[WordPressをインストール]ボタンをクリックします。

ログインをクリック。

設定したユーザー名とパスワードでログインしてみましょう。

いよいよWordPressが利用可能になりました。このWordPressサイトはお使いのPC上でのみ閲覧でき、作り直すのも容易なので自由に操作してみましょう。

Dockerには様々な機能がありすべてを触れることはできませんでしたが、最初の一歩を踏み出すことができました。

冒頭で述べたように、GUIで直感的にDockerを操作することもできます。次の記事ではDocker Desktopを利用してDockerコンテナを操作してみましょう。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

自称文系ながら気づけばLinuxを10年以上使っている少し変わり種。
寄り道しても結局はGNOMEに戻ってきてしまう習性あり。
のんびり派かつスタミナが続く限り試しながら理解していく実践派。

趣味はバイオリンと(自然)言語探究。コードより和音が好物!?
音楽もITも「背後で何が起きてるか」に興味津々

コメント

コメントする

CAPTCHA


目次