© 2021 Addapter Inc.

BLOG

dockerを使ってwordpressを構築する(ハンズオン)

コーディング2021/05/10
なーこ
ブログ サムネイル

このハンズオンでは、まず初めにdockerfileを用いてdockerの基本的なコマンドを学び、実際にdocker上でwordpressを動作させることを目標とします。

dockerの基本的な構成

dockerfileの中身

下の画像がdockerfileと呼ばれるものです。(拡張子はつけません!)

dockerfileには使用するイメージ、コマンド実行などを記載します。いわば仕様書のようなものです。

以下、簡単に各行の説明をしてみました。

centosのイメージをダウンロード
httpdコマンドを使用するためにhttpdをインストール
./index.htmlを/var/www/html/index.htmlにコピー
(コンテナ内の)80番ポートを公開
httpdコマンドを実行

ビルドする前に、コピー元のindex.htmlを現在のディレクトリ(dockerfileと同じ階層)に作成します。中身は以下のようにしておきましょう。

index.html

イメージのビルド

このdockerfileから以下のコマンドでdockerイメージをビルドします。

docker image build -t docker-ex ./

-tはタグをつけるオプションで、保存するときの名前を(ここではdocker-exと)指定しています。

./は現在のディレクトリにあるdockerfileを参照しているという意味です。

それでは、ビルドしていきましょう!

ビルドが完了したら、以下のコマンドを実行すると

docker image ls

作成したイメージの一覧が出てきます。

dockerイメージ一覧

無事、docker-exという名前でイメージが作成されていることが確認できました!

コンテナの作成

先程の作成したイメージからコンテナを起動してみましょう。

docker run -dp 8000:80 docker-ex:latest

ここでもオプションを二つ付けています。-dとはバックグラウンドで実行してくれるもの、-pはポートを指定するもので、今回は8000で接続しポート80に繋げているといった感じです。

それでは早速実行してみましょう!

以下のコマンドを実行し、コンテナが作成されているか確認してみましょう!

docker container ls

dockerコンテナが作成されています!

http://localhost:8000にアクセスすると、

無事、docker上で起動することができました!

wordpressを立ち上げる

今回の最終目的であるdockerを用いてwordpressを構築していきます!

wordpressを構築するにはwordpressとデータベースを作成する必要があります。今回はMysqlを使用したいと思います。

このように二つのイメージを作成するにはdockerfileではなくdocker-compose.ymlというファイルを使用します。そしてコマンドもdocker-composeとなります。基本的にはdockerfileと同じです。

docker-compose.ymlというファイルを作成し以下のように記述します。

docker-compose.yml

5行目、18行目にてイメージを指定しています。今回はwordpressの最新版とmysql5.7です。

さらに21行目ではvolumesを指定しています。ここではwordpressの特定のディレクトリを現在のwordpressというディレクトリで参照されるようにと指定しています。(マウントと言います)ここのファイルを編集するとコンテナにも編集が反映されることになります。

次のコマンドで一気にイメージの作成、コンテナの起動までやってしまいます!

docker-compose up -d

無事コンテナが起動したら、http://localhost:8000にアクセスしてみましょう。

wordpress

wordpressの画面が出てきました。これ以降は通常のwordpress設定手順と同じです。

また現在のディレクトリを確認してみると、wordpressというディレクトリが作成されています。これがvolumesで指定したものです。この中身も通常のwordpressディレクトリのものとなります。

まとめ

dockerを使用したwordpressの構築はとても簡単に、手軽にできることがわかりました!

動作も軽く、チーム全員で全く同じ環境を作成できるのはもちろん、基本的なコマンドで動かせるというのはとても魅力的だなぁと感じます。

難しいというイメージがあったのですが、dockerは奥深いので、もっと勉強したいなと思います。

今回は以上となります。

ここまで読んでいただきありがとうございました。

トップへのスクロールボタン