このチュートリアルでは、複数のDockerコンテナを使用してWordPressをインストールします。 Wordpress自体を1つのコンテナーに、MariaDBデータベースを別のコンテナーに配置します。次に、WordPressコンテナのリバースプロキシとしてNginxをホストマシンにインストールします。
Dockerは、開発者とシステム管理者がDockerコンテナー内で分散アプリケーションを簡単に作成、デプロイ、実行できるようにするオープンソースプロジェクトです。 Dockerはオペレーティングシステムレベルの仮想化であり、コンテナー内で実行されているアプリケーションのdockerを使用して、アプリケーションのシステム分離を作成できます。サーバー内に数百のDockerコンテナーを作成できます。その数は、マシンのハードウェアによって異なります。
前提条件
- Ubuntu 15.04-x86_64
- root権限
- Dockerの知識
このステップでは、Ubuntuリポジトリを更新してから、最新バージョンのdocker.ioをインストールします。
次のステップでrootユーザーになります:
sudo -s
Ubuntuリポジトリを更新します:
apt-get update
次に、以下のaptコマンドを使用してDockerパッケージをインストールします。
apt-get install docker.io
インストールが完了したら、dockerを起動し、systemctlコマンドを使用してシステムの起動時に実行するように追加します。
systemctl start docker
systemctl enable docker
次に、次のdockerコマンドを使用してDockerのバージョンを確認します。
docker version
docker run hello-world
Dockerのインストールが完了しました。
このステップでは、Dockerレジストリから新しいMariaDBイメージをダウンロードし、そのイメージに基づいて新しいコンテナーを作成します。 WordPressインストール用に新しいデータベースとユーザーを構成します。
Dockerプルコマンドを使用して、DockerMariaDBイメージをシステムにダウンロードします。
docker pull mariadb
これで、次のコマンドで新しいDockerMariaDBイメージを確認できます。
docker images
次に、WordPressインストール用のMariaDBイメージから新しいコンテナーを作成します。新しいコンテナを作成する前に、WordPressデータ、データベースディレクトリ、およびWordPressコードディレクトリ用の新しいディレクトリを作成します。
mkdir ~/wordpress
mkdir -p ~/wordpress/database
mkdir -p ~/wordpress/html
次に、以下のコマンドを使用して、「wordpressdb」という名前の新しいMariaDBコンテナーを作成します。
docker run -e MYSQL_ROOT_PASSWORD=aqwe123 -e MYSQL_USER=wpuser -e [email protected] -e MYSQL_DATABASE=wordpress_db -v /root/wordpress/database:/var/lib/mysql --name wordpressdb -d mariadb
エラーがない場合は、以下の結果を確認できます。
パラメータの説明:
- MYSQL_ROOT_PASSWORD =MySQLルートユーザーのパスワードを設定します。
- MYSQL_USER =WordPressデータベース用の新しいMySQLユーザー「wpuser」を作成します。
- MYSQL_PASSWORD =ユーザー「wpuser」のパスワード「[emailprotected]」を設定します。
- MYSQL_DATABASE =「wordpress_db」という名前のWordPressインストール用の新しいデータベースを作成します。
- -v / root / wordpress / database:/ varlib / mysql =データベースディレクトリをコンテナのmysqlディレクトリ'/var / lib / mysql'にリンクして、データの永続性を確保します。
TheMariaDBriadbコンテナが作成されました。ここで、新しいユーザーとデータベースでWordPressがインストールされているかどうかを確認し、コマンドの先頭にエラーがないことを確認します。
ホストマシンから、以下のdockerコマンドを使用してwordpressdbコンテナのIPアドレスを確認します。
docker inspect -f '{{ .NetworkSettings.IPAddress }}' wordpressdb
次に、ホストシステムからmysqlコマンドを使用してwordpressdbコンテナに接続します。
mysql -u wpuser -h 172.17.0.2 -p
TYPE PASSWORD: [email protected]
新しいデータベース'wordpress_db'を確認してください:
show databases;
すべての結果:
新しいDockerコンテナ、MySQLユーザー、およびWordPress用のMySQLデータベースが正常に作成されました。
データベースコンテナが作成されたら、dockerpullコマンドを使用して最新のWordPressdockerイメージをダウンロードします。
docker pull wordpress:latest
ダウンロードが完了したら、「wpcontainer」という名前のイメージから新しいコンテナを作成します。
docker run -e WORDPRESS_DB_USER=wpuser -e [email protected] -e WORDPRESS_DB_NAME=wordpress_db -p 8081:80 -v /root/wordpress/html:/var/www/html --link wordpressdb:mysql --name wpcontainer -d wordpress
以下のような結果が得られるか、「wpcontainer」という名前の新しいコンテナが作成されたことを確認できます。
パラメータ:
- WORDPRESS_DB_USER =ワードプレスデータベースのデータベースユーザー「wpuser」を定義します。
- WORDPRESS_DB_PASSWORD =データベースユーザー'wpuser'のパスワード'[メール保護]'。
- WORDPRESS_DB_NAME =手順2で作成したデータベース「wordpress_db」の名前。
- -p 8081:80 =コンテナのポート80をホストのポート8081にマッピングします。
- -v / root / wordpress / html:/ var / www / html =コンテナのWebルートディレクトリ'/var / www/html'をローカルホストディレクトリ'wordpress/html'にリンクします。
- -link wordpressdb:mysql =mariadbコンテナ「wordpressdb」を新しいcontinerワードプレス「wpcontainer」にリンクします。
WordPressコンテナが実行されていることを確認するには、ホストIPとポート8081でcurlコマンドを使用して確認できます。
curl -I 192.168.43.99:8081
結果が表示されます:
- WebサーバーはApacheであり、Debianで実行されています。
- PHP5.6はコンテナで実行されています。
- WordPressのインストールへのリダイレクトが表示されます。
このステップでは、NginxWebサーバーをホストシステムにインストールします。 Nginxをポート8081のDockerコンテナ「wpcontainer」のリバースプロキシとして構成します。
ホストシステムにaptコマンドを使用してNginxをインストールします:
apt-get install nginx
次に、Nginxディレクトリに移動し、WordPressコンテナの新しい仮想ホスト構成を作成します。
cd /etc/nginx/sites-available/
vim wordpress
以下に仮想ホスト構成を貼り付けます:
server {
listen 80;
server_name wordpress-docker.co www.wordpress-docker.co;
location / {
proxy_pass http://localhost:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
ファイルを保存して終了します。
次に、新しいWordPress仮想ホストをアクティブにして、デフォルトの仮想ホスト構成を削除します。
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-available/default
rm -f /etc/nginx/sites-enabled/default
Nginx Webサーバーを再起動します:
systemctl restart nginx
Webブラウザーを開き、nginx構成のドメイン名「www.wordpress-docker.co」にアクセスすると、WordPressのインストールにリダイレクトされます。
サイトのタイトル、管理者のユーザー名、パスワードを入力し、[WordPressのインストール]をクリックします。
次に、[ログインWordpress]をクリックし、上記で選択したユーザー名とパスワードを入力すると、WordPressダッシュボードが表示されます。
または、以下のWordPressホームページをご覧ください:
MariaDBコンテナとWordPressコンテナを使用したWordPressのインストールは成功しました。