みなさん、こんにちは。
Startup.Tokyo Inc.の吉岡朗です。
今回は、Composerを使うことで運用管理が楽になります。
前半は、運用が楽になるDocker Composerの説明、後半はデータコンテナ分離とバックアップ・リストアを説明します。
Ⅰ.はじめに
今回は、今はやりのDockerについて基本的なところをおさえつつ、その発展形の1つを説明していきます。
まずは、Dockerの基本的な使い方は、このアカデミーで特集される形になっているおなじみの連載ものがあります。
Docker Tips 目次~Cloud ServerでDockerを使おう~
Ⅱ.用意するもの、環境面の説明
今回は、GMOアカデミーより環境を提供いただきました。
サーバーのスペック、環境面は、以下の通りです。(執筆段階)
項目 | 内容 |
サーバースペック | GMOクラウド Altus Basicシリーズ CentOS7 テンプレートはCentOS 7.1.1503 64bit_20160223 サーバーはMiniServerタイプ |
IPアドレス | ***.***.***.*** テスト環境ですが、DNSに以下の名前に仮付与しました。 test1.x1.hogehoge.com, test2.x1.hogehoge.com, test3.x1.hogehoge.com (hogehoge.comは適宜読み替えてください。) |
OSリリースバージョン | CentOS Linux release 7.1.1503 (Core) |
OSカーネルバージョン | Linux version 3.10.0-327.4.4.el7.x86_64 |
メモリ | 500MB |
CPUクロック | 1GHz |
Dockerバージョン | 1.10.3-44.el7.centos |
実行時には# yum updateにてアップデート済みです。
Dockerをインストールします。
Dockerのサービスを起動します。
Dockerをデーモンとして有効化します。
Docker Composerをインストールします。
# chmod +x /usr/local/bin/docker-compose
# docker-compose --version
docker-compose version: 1.7.1
Ⅲ.Docker Composerに変えて運用
Dockerは見ての通り、コマンドで起動しますが、前回記載のモデルの場合は、nginxとWordPressを起動する順序を制御するシェルを作らなければなりません。
前回の場合は、nginxを立ち上げたのち、その後にWordPressを起動する順序となると以下の通りです。(逆でもOKです)
# cat run.sh
#!/bin/sh
docker run -d -p 80:80 --name nginx \
-v /tmp/nginx:/etc/nginx/conf.d \
-t nginx
docker run -i -t \
-e VIRTUAL_HOST=test1.x1.hogehoge.com \
-e WORDPRESS_DB_HOST=db1.hogehoge.com \
-e WORDPRESS_DB_USER=hogetest1 \
-e WORDPRESS_DB_PASSWORD=hogehoge \
-e WORDPRESS_DB_NAME=hogetest2 \
-e WORDPRESS_TABLE_PREFIX=wp_ \
--name wordpress1 \
-d -p :80 wordpress
終了や再起動も1つ1つコンテナの名前を指定して行うので、コンテナが増えてくると管理が面倒になってきます。
まとめてストップ
# docker stop wordpress1
まとめてイメージ削除
# docker rm wordpress1
そこで、docker composerを導入すると、先ほどの構成が次のような構成ファイル(YMLファイル)で管理しやすくできます。
この構成ファイル(YMLファイル)の書式は、docker runのオプションと対応しているので、理解しやすい内容になっています。
では、構成ファイルに書き換えて見ましょう。
# cat docker-compose.yml
version: '2'
services:
nginx:
image: jwilder/nginx-proxy
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/tmp/docker.sock
- /tmp/nginx:/etc/nginx/conf.d
wordpress1:
image: wordpress
environment:
WORDPRESS_DB_HOST: db1.hoehoge.com:3306
WORDPRESS_DB_USER: hogetest1
WORDPRESS_DB_NAME: hogetest2
WORDPRESS_TABLE_PREFIX: wp_
WORDPRESS_DB_PASSWORD: hogehoge
VIRTUAL_HOST: test1.x1.hogehoge.com
いかがですか?意外に簡単に見ませんか?
この構成ファイルは、サービス単位となるディレクトリ名(wordpress)におきます。
/root/wordpress
# ls -al
drwxr-xr-x 2 root root 107 7月 27 15:56 .
dr-xr-x---. 7 root root 4096 7月 22 16:10 ..
-rw-r--r-- 1 root root 668 7月 27 10:31 docker-compose.yml
今回使用したディレクトリは、Docker Composerの「コンテナ名」の一部となります。
後述しますが、Docker Composerで起動したコンテナの名前は
「ディレクトリ名」+ "_" +「サービス名」+ "_" +「数字」
になります。
全てのコンテナで使用するDockerイメージがなければ取得します。
【コマンドの説明】
項目 | 内容 |
docker-compose | Docker Composerのコマンドです |
pull | Dockerイメージを取得します。 |
Pulling nginx (jwilder/nginx-proxy:latest)...
Trying to pull repository docker.io/jwilder/nginx-proxy ...
latest: Pulling from docker.io/jwilder/nginx-proxy
Digest: sha256:cc41372851fceea0e2c2c2b0dfa456f0fc8c6d481822a7ac46e7e9572825d915
Status: Image is up to date for docker.io/jwilder/nginx-proxy:latest
Pulling wordpress1 (wordpress:latest)...
Trying to pull repository docker.io/library/wordpress ...
latest: Pulling from docker.io/library/wordpress
Digest: sha256:0f73fa5e20b0194c6cffc78143e9b9b966c952b57118be12526edb058726cd92
Status: Image is up to date for docker.io/wordpress:latest
全てのコンテナを起動します。
【コマンドの説明】
項目 | 内容 |
docker-compose | Docker Composerのコマンドです |
up | コンテナを起動します |
-d | デーモンモードで起動します。 |
Creating network "wordpress_default" with the default driver
Creating wordpress_nginx_1
Creating wordpress_wordpress1_1
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c8df80e73e77 wordpress "/entrypoint.sh apach" 5 seconds ago Up 3 seconds 80/tcp wordpress_wordpress1_1
3ca758e194ff jwilder/nginx-proxy "/app/docker-entrypoi" 5 seconds ago Up 4 seconds 0.0.0.0:80->80/tcp, 443/tcp wordpress_nginx_1
#
コンテナのログを出力します。
【コマンドの説明】
項目 | 内容 |
docker-compose | Docker Composerのコマンドです |
logs | ログを出力します |
Attaching to wordpress_wordpress1_1, wordpress_nginx_1
wordpress1_1 | WordPress not found in /var/www/html - copying now...
wordpress1_1 | Complete! WordPress has been successfully copied to /var/www/html
wordpress1_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.18.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress1_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.18.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress1_1 | [Tue Jul 26 08:03:58.982455 2016] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.10 (Debian) PHP/5.6.23 configured -- resuming normal operations
wordpress1_1 | [Tue Jul 26 08:03:58.982499 2016] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
nginx_1 | forego | starting nginx.1 on port 5000
nginx_1 | forego | starting dockergen.1 on port 5100
nginx_1 | dockergen.1 | 2016/07/26 08:03:54 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification 'nginx -s reload'
nginx_1 | dockergen.1 | 2016/07/26 08:03:54 Watching docker events
nginx_1 | dockergen.1 | 2016/07/26 08:03:54 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification 'nginx -s reload'
#
全てのコンテナを終了します。
【コマンドの説明】
項目 | 内容 |
docker-compose | Docker Composerのコマンドです |
stop | 終了します |
Stopping wordpress_wordpress1_1 ... done
Stopping wordpress_nginx_1 ... done
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c8df80e73e77 wordpress "/entrypoint.sh apach" 46 seconds ago Exited (0) 2 seconds ago wordpress_wordpress1_1
3ca758e194ff jwilder/nginx-proxy "/app/docker-entrypoi" 46 seconds ago Exited (2) 3 seconds ago wordpress_nginx_1
#
全てのコンテナを削除します。
【コマンドの説明】
項目 | 内容 |
docker-compose | Docker Composerのコマンドです |
rm | 削除します |
WARNING: Not including one-off containers created by `docker-compose run`.
To include them, use `docker-compose rm --all`.
This will be the default behavior in the next version of Compose.Going to remove wordpress_wordpress1_1, wordpress_nginx_1
Are you sure? [yN] y
Removing wordpress_wordpress1_1 ... done
Removing wordpress_nginx_1 ... done
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Ⅳ.コンテナからデータ領域をワケてバックアップとリストア
今までのDockerコンテナは、データ領域が内部にあるので、Dockerを停止させたり、Dockerイメージからコンテナを作ったりすると、データ類は1から作り直しになります。
いわゆるデータの永続性というのがなくなるということになります。
そこでDockerには2つのデータ管理方法があります。
「データボリューム」と「データボリュームコンテナ」です。
表「データボリューム」と「データボリュームコンテナ」の特徴
項目 | 内容 |
データボリューム | ■ 1つまたは複数のコンテナ内に特別に指定されたディレクトリ(コンテナから見た時)
■ Dockerで1つのオブジェクトとして管理されている ■ コンテナをまたいで共有と再利用可能である ■ データボリュームへ変更した結果はすぐに反映される ■ コンテナ自身が消えてもデータボリュームは消えない |
データボリュームコンテナ | ■ データボリューム自体は、外部からアクセスができないため、データボリュームコンテナと呼ばれるコンテナを作成し、そこにデータボリュームをマウントする ■ コンテナを跨(また)いで永続的なデータが共有できる ■ 通常のコンテナと何ら変わりありませんが、コンテナのイメージはライトなbusyboxなどを使う |
今回は、WordPressとNginxを例に、WordPressのデータ領域をデータコンテナ化し、バックアップとリストアをするようにします。
構成ファイル(YMLファイル)です。
version: '2'
services:
nginx:
image: jwilder/nginx-proxy
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/tmp/docker.sock
- /tmp/nginx:/etc/nginx/conf.dwordpress1:
image: wordpress
environment:
WORDPRESS_DB_HOST: db1.hogehoge.com:3306
WORDPRESS_DB_USER: hogetest1
WORDPRESS_DB_NAME: hogetest2
WORDPRESS_TABLE_PREFIX: wp1_
WORDPRESS_DB_PASSWORD: hogehoge
VIRTUAL_HOST: test1.x1.hogehoge.com#データボリュームを利用
volumes:
- "wpdata:/var/www/html"#データボリュームコンテナ
wp-data:
image: busybox
command: /bin/sh
tty: true
#データボリュームを利用
volumes:
- "wpdata:/var/www/html"
- ./backup:/backup#データボリューム
volumes:
wpdata:
全てのコンテナで使用するDockerイメージがなければ取得します。
【コマンドの説明】
項目 | 内容 |
docker-compose | Docker Composerのコマンドです |
pull | Dockerイメージを取得します。 |
Pulling nginx (jwilder/nginx-proxy:latest)...
Trying to pull repository docker.io/jwilder/nginx-proxy ...
latest: Pulling from docker.io/jwilder/nginx-proxy
51f5c6a04d83: Pull complete
(中略)
fd00499281f7: Pull complete
Digest: sha256:cc41372851fceea0e2c2c2b0dfa456f0fc8c6d481822a7ac46e7e9572825d915
Status: Downloaded newer image for docker.io/jwilder/nginx-proxy:latest
Pulling wordpress1 (wordpress:latest)...
Trying to pull repository docker.io/library/wordpress ...
latest: Pulling from docker.io/library/wordpress
5c90d4a2d1a8: Pull complete
(中略)
417100314774: Pull complete
Digest: sha256:0f73fa5e20b0194c6cffc78143e9b9b966c952b57118be12526edb058726cd92
Status: Downloaded newer image for docker.io/wordpress:latest
Pulling wp-data (busybox:latest)...
Trying to pull repository docker.io/library/busybox ...
latest: Pulling from docker.io/library/busybox
8ddc19f16526: Pull complete
Digest: sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6
Status: Downloaded newer image for docker.io/busybox:latest
全てのコンテナを起動します。
【コマンドの説明】
項目 | 内容 |
docker-compose | Docker Composerのコマンドです |
up | コンテナを起動します |
-d | デーモンモードで起動します。 |
Creating network "wordpress_default" with the default driver
Creating wordpress_nginx_1
Creating wordpress_wp-data_1
Creating wordpress_wordpress1_1
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb953a0a806e wordpress "/entrypoint.sh apach" 18 seconds ago Up 13 seconds 80/tcp wordpress_wordpress1_1
5b6a57169028 busybox "/bin/sh" 18 seconds ago Up 7 seconds wordpress_wp-data_1
8ac62edf5bd9 jwilder/nginx-proxy "/app/docker-entrypoi" 18 seconds ago Up 13 seconds 0.0.0.0:80->80/tcp, 443/tcp wordpress_nginx_1
dockerのデータボリュームコンテナに接続し、テスト書き込みをします。
/ #
/ # hostname
5b6a57169028
/ # cd /var/www/html
/var/www/html # ls -la
total 192
drwxr-xr-x 5 www-data www-data 4096 Jul 27 06:46 .
drwxr-xr-x 3 www-data www-data 17 Jul 27 06:46 ..
-rw-r--r-- 1 www-data www-data 234 Jul 27 00:00 .htaccess
-rw-r--r-- 1 root root 22 Jul 27 01:44 1.txt
-rw-r--r-- 1 www-data www-data 418 Sep 25 2013 index.php
-rw-r--r-- 1 www-data www-data 19935 Mar 5 20:14 license.txt
-rw-r--r-- 1 www-data www-data 7360 May 12 11:54 readme.html
-rw-r--r-- 1 www-data www-data 5032 Jan 28 03:35 wp-activate.php
drwxr-xr-x 9 www-data www-data 4096 Jun 21 16:17 wp-admin
-rw-r--r-- 1 www-data www-data 364 Dec 19 2015 wp-blog-header.php
-rw-r--r-- 1 www-data www-data 1476 Jan 30 21:56 wp-comments-post.php
-rw-r--r-- 1 www-data www-data 2853 Jul 27 06:46 wp-config-sample.php
-rw-r--r-- 1 www-data www-data 3254 Jul 27 06:46 wp-config.php
drwxr-xr-x 6 www-data www-data 79 Jul 27 01:04 wp-content
-rw-r--r-- 1 www-data www-data 3286 May 24 2015 wp-cron.php
drwxr-xr-x 16 www-data www-data 8192 Jun 21 16:17 wp-includes
-rw-r--r-- 1 www-data www-data 2380 Oct 24 2013 wp-links-opml.php
-rw-r--r-- 1 www-data www-data 3316 Nov 5 2015 wp-load.php
-rw-r--r-- 1 www-data www-data 33837 Mar 6 03:06 wp-login.php
-rw-r--r-- 1 www-data www-data 7887 Oct 6 2015 wp-mail.php
-rw-r--r-- 1 www-data www-data 13106 Feb 17 22:58 wp-settings.php
-rw-r--r-- 1 www-data www-data 28624 Jan 28 03:51 wp-signup.php
-rw-r--r-- 1 www-data www-data 4035 Nov 30 2014 wp-trackback.php
-rw-r--r-- 1 www-data www-data 3061 Oct 2 2015 xmlrpc.php
/var/www/html # vi 1.txt
/var/www/html #
/var/www/html # cat 1.txt
test 2016:07:27 15:50
/var/www/html #
/var/www/html #
(Ctrl+p Ctrl+qで抜けます)
データの書き込みはデータボリュームコンテナに書き込みをした結果は、WordPress1コンテナ経由でブラウザに表示されました。
バックアップを行います。
【コマンドの説明】
項目 | 内容 |
docker | Dockerのコマンドです |
run | コンテナを起動します |
--volumes-from wordpress_wp-data_1 | wordpress_wp-data_1というコンテナのボリュームに接続します |
-v $(pwd):/backup | カレントのディレクトリと、このコンテナ内部のディレクトリをつなげます |
ubuntu | コンテナのイメージを指定します。 |
tar | 上記のイメージ指定に対する起動オプションとしてtarコマンドを指定します。 (通常はコンソールの場合には/bin/shを指定します。) |
cvf | tarのコマンドのオプションです。 |
/backup/backup.tar | コンテナ内部のバックアップ場所を指定します。 これは、上記の-v引数によってカレントディレクトリにファイルができます。 |
/var/www/html | コンテナ内部のバックアップ対象先です。wordpressの規定ディレクトリを指定します。 |
合計 16
drwxr-xr-x 2 root root 90 7月 27 15:55 .
dr-xr-x---. 7 root root 4096 7月 22 16:10 ..
-rw-r--r-- 1 root root 668 7月 27 10:31 docker-compose.yml
# docker run --volumes-from wordpress_wp-data_1 -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/www/html
Unable to find image 'ubuntu:latest' locally
Trying to pull repository docker.io/library/ubuntu ...
latest: Pulling from docker.io/library/ubuntu
43db9dbdcb30: Pull complete
2dc64e8f8d4f: Pull complete
670a583e1b50: Pull complete
183b0bfcd10e: Pull complete
Digest: sha256:c6674c44c6439673bf56536c1a15916639c47ea04c3d6296c5df938add67b54b
Status: Downloaded newer image for docker.io/ubuntu:latest
tar: Removing leading `/' from member names
/var/www/html/
/var/www/html/.htaccess
/var/www/html/index.php
/var/www/html/license.txt
/var/www/html/readme.html
(中略)
/var/www/html/wp-trackback.php
/var/www/html/xmlrpc.php
/var/www/html/wp-config.php
/var/www/html/1.txt
ディレクトリの確認
合計 24028
drwxr-xr-x 2 root root 107 7月 27 15:56 .
dr-xr-x---. 7 root root 4096 7月 22 16:10 ..
-rw-r--r-- 1 root root 24586240 7月 27 15:56 backup.tar
-rw-r--r-- 1 root root 668 7月 27 10:31 docker-compose.yml
バックアップファイルの確認
drwxr-xr-x www-data/www-data 0 2016-07-27 15:46 var/www/html/
-rw-r--r-- www-data/www-data 234 2016-07-27 09:00 var/www/html/.htaccess
-rw-r--r-- www-data/www-data 418 2013-09-25 09:18 var/www/html/index.php
-rw-r--r-- www-data/www-data 19935 2016-03-06 05:14 var/www/html/license.txt
-rw-r--r-- www-data/www-data 7360 2016-05-12 20:54 var/www/html/readme.html
-rw-r--r-- www-data/www-data 5032 2016-01-28 12:35 var/www/html/wp-activate.php
drwxr-xr-x www-data/www-data 0 2016-06-22 01:17 var/www/html/wp-admin/
-rw-r--r-- www-data/www-data 12892 2016-06-22 01:16 var/www/html/wp-admin/about.php
(中略)
-rw-r--r-- www-data/www-data 33837 2016-03-06 12:06 var/www/html/wp-login.php
-rw-r--r-- www-data/www-data 7887 2015-10-06 23:07 var/www/html/wp-mail.php
-rw-r--r-- www-data/www-data 13106 2016-02-18 07:58 var/www/html/wp-settings.php
-rw-r--r-- www-data/www-data 28624 2016-01-28 12:51 var/www/html/wp-signup.php
-rw-r--r-- www-data/www-data 4035 2014-12-01 06:23 var/www/html/wp-trackback.php
-rw-r--r-- www-data/www-data 3061 2015-10-03 07:46 var/www/html/xmlrpc.php
-rw-r--r-- www-data/www-data 3254 2016-07-27 15:46 var/www/html/wp-config.php
-rw-r--r-- root/root 22 2016-07-27 15:50 var/www/html/1.txt
#
データボリュームコンテナに接続して、削除します。
/ #
/ # cd /var/www/html
/var/www/html # ls -la
total 192
drwxr-xr-x 5 www-data www-data 4096 Jul 27 06:46 .
drwxr-xr-x 3 www-data www-data 17 Jul 27 06:46 ..
-rw-r--r-- 1 www-data www-data 234 Jul 27 00:00 .htaccess
-rw-r--r-- 1 root root 22 Jul 27 06:50 1.txt
-rw-r--r-- 1 www-data www-data 418 Sep 25 2013 index.php
-rw-r--r-- 1 www-data www-data 19935 Mar 5 20:14 license.txt
-rw-r--r-- 1 www-data www-data 7360 May 12 11:54 readme.html
-rw-r--r-- 1 www-data www-data 5032 Jan 28 03:35 wp-activate.php
drwxr-xr-x 9 www-data www-data 4096 Jun 21 16:17 wp-admin
-rw-r--r-- 1 www-data www-data 364 Dec 19 2015 wp-blog-header.php
-rw-r--r-- 1 www-data www-data 1476 Jan 30 21:56 wp-comments-post.php
-rw-r--r-- 1 www-data www-data 2853 Jul 27 06:46 wp-config-sample.php
-rw-r--r-- 1 www-data www-data 3254 Jul 27 06:46 wp-config.php
drwxr-xr-x 6 www-data www-data 79 Jul 27 01:04 wp-content
-rw-r--r-- 1 www-data www-data 3286 May 24 2015 wp-cron.php
drwxr-xr-x 16 www-data www-data 8192 Jun 21 16:17 wp-includes
-rw-r--r-- 1 www-data www-data 2380 Oct 24 2013 wp-links-opml.php
-rw-r--r-- 1 www-data www-data 3316 Nov 5 2015 wp-load.php
-rw-r--r-- 1 www-data www-data 33837 Mar 6 03:06 wp-login.php
-rw-r--r-- 1 www-data www-data 7887 Oct 6 2015 wp-mail.php
-rw-r--r-- 1 www-data www-data 13106 Feb 17 22:58 wp-settings.php
-rw-r--r-- 1 www-data www-data 28624 Jan 28 03:51 wp-signup.php
-rw-r--r-- 1 www-data www-data 4035 Nov 30 2014 wp-trackback.php
-rw-r--r-- 1 www-data www-data 3061 Oct 2 2015 xmlrpc.php
テストファイルを削除します。
テストファイルは削除されました。
total 188
drwxr-xr-x 5 www-data www-data 4096 Jul 27 07:01 .
drwxr-xr-x 3 www-data www-data 17 Jul 27 06:46 ..
-rw-r--r-- 1 www-data www-data 234 Jul 27 00:00 .htaccess
-rw-r--r-- 1 www-data www-data 418 Sep 25 2013 index.php
-rw-r--r-- 1 www-data www-data 19935 Mar 5 20:14 license.txt
-rw-r--r-- 1 www-data www-data 7360 May 12 11:54 readme.html
-rw-r--r-- 1 www-data www-data 5032 Jan 28 03:35 wp-activate.php
drwxr-xr-x 9 www-data www-data 4096 Jun 21 16:17 wp-admin
-rw-r--r-- 1 www-data www-data 364 Dec 19 2015 wp-blog-header.php
-rw-r--r-- 1 www-data www-data 1476 Jan 30 21:56 wp-comments-post.php
-rw-r--r-- 1 www-data www-data 2853 Jul 27 06:46 wp-config-sample.php
-rw-r--r-- 1 www-data www-data 3254 Jul 27 06:46 wp-config.php
drwxr-xr-x 6 www-data www-data 79 Jul 27 01:04 wp-content
-rw-r--r-- 1 www-data www-data 3286 May 24 2015 wp-cron.php
drwxr-xr-x 16 www-data www-data 8192 Jun 21 16:17 wp-includes
-rw-r--r-- 1 www-data www-data 2380 Oct 24 2013 wp-links-opml.php
-rw-r--r-- 1 www-data www-data 3316 Nov 5 2015 wp-load.php
-rw-r--r-- 1 www-data www-data 33837 Mar 6 03:06 wp-login.php
-rw-r--r-- 1 www-data www-data 7887 Oct 6 2015 wp-mail.php
-rw-r--r-- 1 www-data www-data 13106 Feb 17 22:58 wp-settings.php
-rw-r--r-- 1 www-data www-data 28624 Jan 28 03:51 wp-signup.php
-rw-r--r-- 1 www-data www-data 4035 Nov 30 2014 wp-trackback.php
-rw-r--r-- 1 www-data www-data 3061 Oct 2 2015 xmlrpc.php
/var/www/html #
/var/www/html #
/var/www/html #
(Ctrl+p Ctrl+qで抜けます)
リストアします。
【コマンドの説明】
項目 | 内容 |
docker | Dockerのコマンドです |
run | コンテナを起動します |
--volumes-from wordpress_wp-data_1 | wordpress_wp-data_1というコンテナのボリュームに接続します |
-v $(pwd):/backup | カレントのディレクトリと、このコンテナ内部のディレクトリをつなげます |
ubuntu | コンテナのイメージを指定します。 |
tar | 上記のイメージ指定に対する起動オプションとしてtarコマンドを指定します。 (通常はコンソールの場合には/bin/shを指定します。) |
xvf | tarのコマンドのオプションです。 |
/backup/backup.tar | コンテナ内部のバックアップ場所を指定します。 |
これは、上記の-v引数によってカレントディレクトリにファイルができます。
var/www/html/
var/www/html/.htaccess
var/www/html/index.php
var/www/html/license.txt
var/www/html/readme.html
var/www/html/wp-admin/
var/www/html/wp-admin/about.php
(中略)
var/www/html/wp-settings.php
var/www/html/wp-signup.php
var/www/html/wp-trackback.php
var/www/html/xmlrpc.php
var/www/html/wp-config.php
var/www/html/1.txt
#
データボリュームコンテナに接続して、リストアされたテストファイルを確認します。
/ #
/ # cd /var/www/html
/var/www/html # ls -la
total 192
drwxr-xr-x 5 www-data www-data 4096 Jul 27 06:46 .
drwxr-xr-x 3 www-data www-data 17 Jul 27 06:46 ..
-rw-r--r-- 1 www-data www-data 234 Jul 27 00:00 .htaccess
-rw-r--r-- 1 root root 22 Jul 27 06:50 1.txt
-rw-r--r-- 1 www-data www-data 418 Sep 25 2013 index.php
-rw-r--r-- 1 www-data www-data 19935 Mar 5 20:14 license.txt
-rw-r--r-- 1 www-data www-data 7360 May 12 11:54 readme.html
-rw-r--r-- 1 www-data www-data 5032 Jan 28 03:35 wp-activate.php
drwxr-xr-x 9 www-data www-data 4096 Jun 21 16:17 wp-admin
-rw-r--r-- 1 www-data www-data 364 Dec 19 2015 wp-blog-header.php
-rw-r--r-- 1 www-data www-data 1476 Jan 30 21:56 wp-comments-post.php
-rw-r--r-- 1 www-data www-data 2853 Jul 27 06:46 wp-config-sample.php
-rw-r--r-- 1 www-data www-data 3254 Jul 27 06:46 wp-config.php
drwxr-xr-x 6 www-data www-data 79 Jul 27 01:04 wp-content
-rw-r--r-- 1 www-data www-data 3286 May 24 2015 wp-cron.php
drwxr-xr-x 16 www-data www-data 8192 Jun 21 16:17 wp-includes
-rw-r--r-- 1 www-data www-data 2380 Oct 24 2013 wp-links-opml.php
-rw-r--r-- 1 www-data www-data 3316 Nov 5 2015 wp-load.php
-rw-r--r-- 1 www-data www-data 33837 Mar 6 03:06 wp-login.php
-rw-r--r-- 1 www-data www-data 7887 Oct 6 2015 wp-mail.php
-rw-r--r-- 1 www-data www-data 13106 Feb 17 22:58 wp-settings.php
-rw-r--r-- 1 www-data www-data 28624 Jan 28 03:51 wp-signup.php
-rw-r--r-- 1 www-data www-data 4035 Nov 30 2014 wp-trackback.php
-rw-r--r-- 1 www-data www-data 3061 Oct 2 2015 xmlrpc.php
/var/www/html # cat 1.txt
test 2016:07:27 15:50
/var/www/html #