GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

Dockerを使用してWordPressをインストールする方法

概要

この記事では、Dockerを使用してWordPressをインストールする方法について説明します。つまり、DockerコンテナとDockercomposeを使用してWordPressをインストールします。次の手順のシナリオは次のようになります。Singeホストマシン(1台のDebianサーバー)と1台のDockerエンジンが実行されています。ホストに公式のWordPressDockerコンテナーをインストールし、データの永続性も設定します。もちろん、この方法は、Dockerエンジンを実行している限り、他のLinuxホストマシンでも機能します。

要件:

  • Linuxホスト
  • Dockerがインストールされて実行されています。

Dockerをインストールする

Dockerのインストールでは、Debian、Ubuntu、Raspbianをホストとして使用している場合は、公式の自動インストールDockerスクリプトを使用できます。それ以外の場合は、Dockerのドキュメントまたはこの投稿を参照してください。

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Dockerをユーザーグループに追加します:

sudo usermod -aG docker <username>

Dockerコンテナを使用してWordPressをインストールする

WordPress Dockerコンテナをインストールするには、次のコマンドを使用できます。

docker run --name some-wordpress -p 8080:80 -d wordpress

これにより、Webサーバー、WordPressインストール、PHP、およびMySQL(MariaDB)データベースサーバーを実行する1つのDockerコンテナーがデプロイされます。このオプションは理想的な展開ではありません。ほとんどの場合、Webサイトのデータも残り、コンテナー内に保存され、コンテナーを再起動するたびにすべてのデータが失われます。そのため、WordPressの永続的なデータ(ホストにデータを保存する)が必要です。この種のデプロイでは、次のようにWordPressコンテナを実行することをお勧めします。

DB container:

docker run -e MYSQL_ROOT_PASSWORD=<password> -e MYSQL_DATABASE=wordpress --name wordpressdb -v "$PWD/database":/var/lib/mysql -d mariadb:latest --restart:unless-stopped

WordPress container:

docker run -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=<password> --name wordpress --link wordpressdb:mysql -p 80:80 -v "$PWD/html":/var/www/html -d wordpress --restart:unless-stopped

この種のデプロイでは、データベースとワードプレスのコンテナーを別々にデプロイしました。コマンドの内訳:

DBコンテナ:

-e: -e引数を使用して、この場合はデータベースのクレデンシャルとパラメーター(パスワードとデータベース名)となる環境変数を設定します。

–名前: name引数は、データベースコンテナ名の名前をどのように設定するかです。

-v: この引数を使用して、コンテナがコンテナ内ではなくすべてのデータベースデータを保存するホストサーバーにディレクトリを設定してマウントします。このパラメータはデータの永続性を設定するため重要です。

-d: この引数を使用して、Dockerコンテナイメージを選択します。この場合は、最新のmariadbデータベースイメージを使用しました。

–再起動: コンテナが停止するたびにコンテナを再起動するようにDockerデーモンに指示する引数。

WordPressコンテナ:

-e: WordPress Dockerコンテナーの場合、WordPressがデータベースにアクセスできるように、データベースコンテナーパラメーターでもある環境変数を設定します。

–名前: ワードプレスコンテナの名前を設定するための引数でもあります。

–リンク: データベースリンク引数(WodpressからMariaDBコンテナへのデータベース接続を設定するため)

注: –リンクについて 議論として、Dockerは、これが将来的にレガシー機能になり、将来のDockerアップデートで削除され、データベースコンテナ接続が切断される可能性があることを発表しました。そのため、この種のデプロイを計画している場合は、Dockerコンポジションを使用して、またはWordPressがMariaDBデータベースに接続するためにDockerネットワークに依存するスタックとしてこのWordPressセットアップをデプロイすることをお勧めします。これについては次の章で説明します。

-p: 公開されたポート変数。 WordPressに公的にアクセスできるようにするために、ホストとコンテナで公開するポート。

-v: ホストからディレクトリを追加し、WordPressファイルを保存するホストマシンのマウントポイント-別名データ永続性。

-d: 使用するDockerイメージ。

–再起動: コンテナが停止するたびにコンテナを再起動するようにDockerデーモンに指示する引数。

Docker作成バージョン

Dockercomposeをインストールします:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

最新のdockercomposeリリースについては、dockerのドキュメントを参照してください。

この作成ファイル用に別のディレクトリを作成し、そのディレクトリ内にDocker作成ファイルを作成できます。

mkdir wordpress && cd wordpress/

touch docker-compose.yml && nano docker-compose.yml

次のyaml構成を使用できます:

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

構成ファイルは、前の章のコンテナーをデプロイするためのコマンドラインと非常によく似ています。

スタックをデプロイし、compose fileディレクトリにいる間に、次のコマンドを実行します。

sudo docker-compose up -d

展開が完了するまでに数分かかります。

スタックとしてデプロイ

Dockerまたはdockercomposeを使用してWordPressをスタックとしてデプロイするには、構成ファイルにstack.ymlという名前を付け、次のコマンドを実行します。

Docker

docker stack deploy -c stack.yml wordpress

Docker compose

docker-compose -f stack.yml up

展開にどのステップを選択したかに関係なく、成功する結果は次のようになります。

そして、ブラウザからWordPressのインストールにアクセスできるようになったら:

注: UFWまたはIPTABLESファイアウォールを実行している場合、ブラウザ経由でWordPressにアクセスするには、適切なポート(ホストマシン用に公開したポート)を開く必要があります。

UFW

sudo ufw allow 8080

IPTABLES

sudo iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

or

sudo iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

概要

記事を要約すると、Dockerを使用してWordPressをインストールする方法と、Dockercomposeを使用してWordPressをインストールする方法を紹介しました。お気づきのとおり、DockerとDockercomposeを使用してWordPressを削除する方法はいくつかあります。しかし、全体として、非常に好ましい方法は、WordPress用とMariaDB/MySQLサーバー用に別々のコンテナーを用意することです。将来のスケーラビリティを簡素化し、データの永続性を確保するには、必須です。

お時間をいただきありがとうございます…


Docker
  1. Ubuntu18.04でNginxを使用してWordPressをインストールする方法

  2. DockerをDebian9にインストールする方法(Stretch)

  3. DockerコンテナにVimをインストールする方法

  1. UbuntuにDockerでWordPressをインストールする方法

  2. Ansibleを使用してDockerをインストールする方法[Debian/Ubuntu]

  3. UbuntuにDockerとWordPressをインストールする

  1. RaspberryPiにDockerをインストールする方法

  2. Dockerを使用してWordPressをインストールする方法

  3. CentOSにDockerをインストールする方法