このドキュメントで説明されているソフトウェアはサポートされていないか、拡張サポートが提供されています。
現在サポートされているリリースにアップグレードすることをお薦めします。

4.9 Dockerコンテナとホスト間のデータの移動

docker run-vオプションを使用して、データ・ボリューム・コンテナとホストとの間でボリューム・データをコピーできます。 たとえば、同じデータ・ボリューム・コンテナにリストアしたり、別のデータ・ボリューム・コンテナにコピーしたりできるように、データをバックアップする場合があります。

この項の各例では、Dockerがデータ・ボリューム・コンテナ・イメージ(mymod/dvc:v1: 4.8項「データ・ボリューム・コンテナの作成と使用方法」を参照)の2つのインスタンスを実行していることを前提としています。 これらのコンテナを起動するには、次のコマンドを使用します。

# docker run -d --name dvc1 mymod/dvc:v1
# docker run -d --name dvc2 mymod/dvc:v1

データ・ボリュームからホストにデータをコピーするには、次のように、別のコンテナからボリュームをマウントし、cpコマンドを使用してデータをホストにコピーします。

[root@host ~]# docker run --rm -v /var/tmp:/host:rw oraclelinux:6 \
   --volumes-from dvc1 cp -r /var/www/html /host/dvc1_files

コンテナはホスト・ディレクトリ/var/tmp/hostとして読取り/書込み可能でマウントし、すべてのボリューム(dvc1がエクスポートする/var/www/htmlを含む)をマウントして、/var/www/html以下のファイル階層を、ホスト上の/var/tmp/dvc1_filesに対応する/host/dvc1_filesにコピーします。

dvc1のデータのバックアップをホストから別のデータ・ボリューム・コンテナdvc2にコピーするには、次のようなコマンドを使用します。

[root@host ~]# docker run --rm -v /var/tmp:/host:ro --volumes-from dvc2 \
  oraclelinux:6 cp -a -T /host/dvc1_files /var/www/html

コンテナはホスト・ディレクトリ/var/tmp/hostとして読取り専用でマウントし、dvc2によってエクスポートされたボリュームをマウントして、/host/dvc1_files以下のファイル階層(ホスト上の/var/tmp/dvc1_files)を、dvc2がエクスポートするボリュームに対応する/var/www/htmlにコピーします。

次のように、tarなどのコマンドを使用して、データを1つのアーカイブ・ファイルとしてバックアップおよびリストアすることも可能です。

[root@host ~]# docker run --rm -v /var/tmp:/host:rw --volumes-from dvc1 \
  oraclelinux:6 tar -cPvf /host/dvc1_files.tar /var/www/html
/var/www/html/
/var/www/html/file1.html
/var/www/html/file2.html
/var/www/html/index.html
[root@host ~]# ls -l /var/tmp/dvc1_files.tar
-rw-r--r--. 1 root root 10240 Aug 31 14:37 /var/tmp/dvc1_files.tar
[root@host ~]# docker run --rm -i -t --name guest -v /var/tmp:/host:ro \
  --volumes-from dvc2 oraclelinux:6 /bin/bash
[root@guest ~]# rm /var/www/html/*.html
[root@guest ~]# ls -l /var/www/html/*.html
total 0
[root@guest ~]# tar -xPvf /host/dvc1_files.tar
var/www/html/
var/www/html/file1.html
var/www/html/file2.html
var/www/html/index.html
[root@guest ~]# ls -l /var/www/html
total 12
-rw-r--r--. 1 root root 35 Aug 30 09:02 file1.html
-rw-r--r--. 1 root root 35 Aug 30 09:03 file2.html
-rw-r--r--. 1 root root 35 Aug 30 09:03 index.html
[root@guest ~]# exit
exit
[root@host ~]# 

この例では、guestという名前の一時的な対話型コンテナを使用して、アーカイブのコンテンツをdvc2に抽出します。