Docker –volumes-fromオプションの極意

dockerコマンドの--volumes-fromオプションの動作が思い通りにならなくて困っていたのですが、どうやら間違って理解していたようです。

■これまでの理解
最初に起動したコンテナ上に存在するディレクトリを、新たに起動したコンテナで共有できると思っていた。

(例)
1. 最初のコンテナを起動する。

$ docker run -it --name debian1 debian /bin/bash

2. --volumes-fromをつけて最初のコンテナのディレクトリを共有する(しかし、できない)。

$ docker run -it --name debian2 --volumes-from debian1 debian/bin/bash

以上の操作で、たとえばdebian1から/tmpディレクトリに作成したファイルをdebian2の/tmpディレクトリで読めると思ったのですが、/tmpディレクトリはスッカラカン。

■正しい理解
--volumes-fromで指定したコンテナがマウントしているボリュームをマウントする。
要するに、-vオプションを使う手間を省く。

(例)
1. 最初のコンテナを起動する。
ホストの/tmp、/backupをコンテナの/tmp、/backupにマウントする。

$ docker run -it --name debian1 -v /tmp:/tmp -v /backup:/backup debian /bin/bash

2. --volumes-fromをつけて最初のコンテナのディレクトリを共有する。

$ docker run -it --name debian2 --volumes-from debian1 debian/bin/bash

これにより、debian2でもホストの/tmp、/backupが/tmp、/backupにマウントされる。