WordPress
Docker
docker-compose

Dockerを導入 Wordpress環境を構築

More than 1 year has passed since last update.

話題の仮想化環境であるdockerに触れてみました。

導入にあたり、助けていただいた勉強会&qiita

2時間でマスターしちゃう Docker ECSハンズオン

docker-composeでwordpress環境をサクッと構築する


目的

・dockerを用いてwordpress環境を作ることを目的とする。

・今後導入しやすいように「docker-compose」を作成する。

・dockerのコマンドについて覚える


インストール

公式のサイトからインストールする

●Mac用、windows用それぞれある。

※windowsの場合はwindows10proで無ければならない。(toolboxなどをさらにインストールしなければならずやや面倒くさいみたいです)

https://docs.docker.com

インストール後に正しく動いているのかの確認は下記のコマンドを実行


command

docker version



docker-compose作成


docker-compose.yml

version: "2"

services:
wordpress:
image:
wordpress:latest
volumes:
- "$PWD:/var/www/html"
- "$PWD/.docker/backup:/tmp/backup"
- "$PWD/.docker/log:/tmp/log"
ports:
- "8080:80"
depends_on:
- db
environment:
WORDPRESS_DB_HOST: "db:3306"
env_file: .env

db:
image:
mysql:5.7
volumes:
- "db-data:/var/lib/mysql"
env_file: .env

volumes:
db-data:



.env

WORDPRESS_DB_NAME=wordpress

WORDPRESS_DB_USER=admin
WORDPRESS_DB_PASSWORD=pass

MYSQL_RANDOM_ROOT_PASSWORD=yes
MYSQL_DATABASE=wordpress
MYSQL_USER=admin
MYSQL_PASSWORD=pass


githubはこちら


buildする


buildするディレクトリ(test3)を作成し、移動する。


command

mkdir test3

cd test3

ビルド実行


command

docker-compose up -d



local環境で画面確認

http://localhost:8080

wordpressのインストール画面が見えましたら、成功です。


各種コマンドについて


イメージの確認


command

docker images



稼働中のコンテナ一覧


command

docker ps



稼働中・稼働停止も含めたコンテナ一覧


command

docker ps -a



稼働コンテナの停止


command

docker stop [コンテナ名]



停止コンテナの稼働


command

docker start [コンテナ名]



コンテナの削除


command

docker rm [コンテナ名]



イメージの削除


command

docker rmi [イメージ名]



苦戦したところ、解らなかったところ


①8000:80が動かない

docker-compose.ymlファイルを作成するにあたり、wordpressのport番号を「- "8000:80"」にしたかったが、(port is already allocated) と出て起動させてくれなかった。練習でdockerを立ち上げていてすでに8000番を使っていたのだろうか、そうであれば8000番ポートを解除してちゃんと使えるようにしたいのだが、よくわからずでした。

しょうがなく「- "8080:80"」にしたら起動した。


②$PWDとは

「volume」がホスト側でファイルを操作するための設定であると聞きました。今回のdocker-compose.ymlファイルには下記のように記述しました。


docker-compose.yml

    volumes:

- "$PWD:/var/www/html"
- "$PWD/.docker/backup:/tmp/backup"
- "$PWD/.docker/log:/tmp/log"

・【$PWD】これはどのような意味なのか(省略文字なのか)?。

(/test3/という階層にwpファイル群が展開していったのでなんとなく意味はわかるが)

・下の二つの隠しフャイル展開しているものはどのように使えば良いのか(不要ならば消したい)


③ホスト側のdbの場所がわからない

dbでの「volume」でも下記のような設定をしました。


docker-compose.yml

    volumes:

- "db-data:/var/lib/mysql"

この設定をしたがファイル群を見ても「db-data」という階層が見当たらない、どこにdb情報が格納されているのかがわからない。

local環境で開発後にサーバーにデプロイするために、db情報がどこにあるかわからないのは致命的である。