2017-11-20 8 views

答えて

2

Dockerボリュームには、バインドマウントと管理の2種類があります。バインドマウントは実行時に行われ、ソースディレクトリについて話しているときには、それを考えています。

docker run -v mydir:/app someimage

これは、実行中のコンテナに/appにホストマシン上のmydirディレクトリをマウントします:それはこのようになります。

管理対象ボリュームにはソースディレクトリがありません。コンテナ領域にのみ存在します。これは通常、コンテナ実行間のデータを保持するために使用されます。これは、コンテナが一時的であるためです。

一般的な使用例は、パッケージをnpm installpip installまたは他のパッケージマネージャから開発用に保存する場合です。コンテナを実行するたびに100個のパッケージを再ダウンロードしたくないかもしれません。代わりに、私は実行の間にそれらを永続化するために、ボリュームを使用することができます。

docker run -v myvol:/app/node_modules someimage

私はこのコンテナを起動して、このようなmyvolをマウントする次の時間は、ボリュームmyvolが既に/app/node_modulesの最後の時からインストールされたパッケージのすべてを持っているので、 npmは更新を迅速にスキャンして移動します。

また、Dockerizedデータベースを実行する役割の管理対象ボリュームを検討してください。これをチェックしてください、それは非常に良い答えがあります:How to deal with persistent storage (e.g. databases) in docker

+0

ドッカーswarmで動作しますか?私は試しましたが動作しません – Luke101

+0

私は知らない、私はドッカースウォームを使用していない。 KubernetesとAWS ECSの両方がボリュームをサポートしているので、Swarmも同様に考える必要があります。 – bluescores

関連する問題