ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

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実行 wordpressmysqlの最新を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