28

コマンドの使用法を理解しようとして、YouTube でこのチュートリアルを行っていました。-v

作者はなぜこの-vコマンドを使用しているのですか? 彼は次のようにコマンドを使用します。

docker run -v /var/lib/mysql --name=my_datastore -d busybox echo "my datastore"

これで、上記のコマンドをある程度理解できました。

  • --name=my_datastoreコンテナに特定の名前を付けます。
  • -d busyboxイメージに基づいて、デタッチ モードでコンテナを起動しますbusybox

コマンドが実行されると、以下の行がコンソールにエコーされます。

my datastore 

今、私が理解していない部分は次のとおりです。

-v /var/lib/mysql

-vここでコマンドが使用されている理由と、パスが/var/lib/mysql指定されている理由を教えてください。

上記の行が使用されている理由と、どのようなコンテキストで使用されているかを理解するのに苦労しています。誰でも説明できますか?

4

1 に答える 1

80

への-v(または--volume) 引数docker runは、コンテナー ファイルシステムの残りの部分とは別のコンテナー内にストレージ スペースを作成するためのものです。コマンドには 2 つの形式があります。

のような単一の引数を指定すると-v /var/lib/mysql、Docker からスペースが割り当てられ、指定された場所にマウントされます。これは主に、サービス コンテナーとは異なるDocker からストレージを割り当てる方法です。たとえば、データベース アプリケーションの新しいバージョンを実行したい場合があります。これには、既存の MySQL コンテナーを破棄して新しいコンテナーを開始することが含まれます。このプロセスでデータを存続させたいので、データベース コンテナからアクセスできるボリュームにデータを保存します。

のように2 つの引数 ( host_path:container_path) を-v /data/mysql:/var/lib/mysql指定すると、指定されたパスのコンテナー内のホストに指定されたディレクトリがマウントされます (正確には、これを使用して、コンテナー内のホストファイル-v /etc/localtime:/etc/localtimeを公開することもできます。たとえば/etc/localtime、ホスト/etc/localtimeはコンテナー内で利用可能)。これは、コンテナーに情報をフィードする方法、またはコンテナーがホストからファイルにアクセスできるようにする方法を提供する方法のいずれかです。

-vコマンドライン引数を使用するか、Dockerfile のディレクティブを使用して、コンテナーに利用可能なボリュームがある場合、これらのボリュームは、オプションVOLUMEを使用して別のコンテナーからアクセスできます。--volumes-from

docker run --volumes-from my_datastore ...

これにより、ソース コンテナで定義されたすべてのボリュームが、開始するコンテナで使用できるようになります--volumes-from

これについては、 Docker Volumesのドキュメントで詳しく説明されています。

于 2015-08-28T11:39:52.433 に答える