Docker-composeでWordPressを構築してみる。
DBデータ用イメージ作成
Volumeリンクで保存場所としてのコンテナで使用する。
Dockerfile
FROM busybox MAINTAINER 0.1 haronoid VOLUME /var/lib/mysql
イメージ作成
$ docker build -t dataonly
コンテナ作成
$ docker run -it --name dataonly dataonly / # exit
- コンテナはExitで終了しておく
Docker-composeを利用し、WordPressのWebServer,DbServerを構築
ymlファイルにwebserverとdbserverを記述 * webserver - imaege : wordpressのlatest - portts : ホストの80ポートをフォワード - dbserverをmysqlのアリアスでつなぐ * dbserver - image : mysqlのlatest - valumes_from : データファイル用のdataonlyコンテナを指定 - 環境変数にルートパスワードを指定
Docker-compose.yml
webserver: image: wordpress ports: - "80:80" links: - "dbserver:mysql" dbserver: image: mysql volumes_from: - dataonly environment: MYSQL_ROOT_PASSWORD: mysql
Docker-Compose実行 wordpressとmysqlの最新をpullしDocker-Composeの内部コンテナとして起動する。
$ docker-compose up -d Pulling webserver (wordpress:latest)... latest: Pulling from library/wordpress 85b1f47fba49: Already exists d8204bc92725: Pull complete 92fc16bb18e4: Pull complete 31098e61b2ae: Pull complete f6ae64bfd33d: Pull complete 003c1818b354: Pull complete a6fd4aeb32ad: Pull complete a094df7cedc1: Pull complete e3bf6fc1a51d: Pull complete ad235c260360: Pull complete edbf48bcbd7e: Pull complete fd6ae81d5745: Pull complete 69838fd876d6: Pull complete 3186ebffd72d: Pull complete b24a415ea2c0: Pull complete 225bda14ea90: Pull complete d47a53aaaacc: Pull complete ce9b97a033e9: Pull complete Digest: sha256:6216f64ab88fc51d311e38c7f69ca3f9aaba621492b4f1fa93ddf63093768845 Status: Downloaded newer image for wordpress:latest Creating wordpress_dbserver_1 ... Creating wordpress_dbserver_1 ... done Creating wordpress_webserver_1 ... Creating wordpress_webserver_1 ... done
確認
$ docker-compose ps Name Command State Ports -------------------------------------------------------------------------------- wordpress_dbserver_1 docker-entrypoint.sh mysqld Up 3306/tcp wordpress_webserver_1 docker-entrypoint.sh apach Up 0.0.0.0:80->80/tcp ...
データ専用コンテナの起動を確認
$ docker start -ia dataonly / # ls /var/lib/mysql
稼働確認
$ docker-compose run webserver /bin/sh
# ls
http://localhostよりWordPress稼働状況を確認
コンテナの停止
$ docker-compose stop
コンテナの削除
$ docker-compose rm
データ専用コンテナのバックアップ
$ docker export dataonly > backup.tar $ tar xvf barkup.tar
データのリストア
$ tar xvf backup.tar