データボリュームの使用開始 先ほどのケースでは、ホストからコンテナにデータをコピーする必要がある場合、通常は Docker の copy コマンドを使用しますが、それでもパフォーマンスは少し劣ります。このコピーをローカル ディスクの I/O パフォーマンスに到達させる方法はないのでしょうか?持っている! データ ボリュームはコピー システムをバイパスし、複数のコンテナー間またはコンテナーとホスト間でディレクトリやファイルを共有できます。データ ボリュームはコピー システムをバイパスし、ローカル ディスク I/O パフォーマンスを実現できます。 この記事では、まず簡単なケースを使用して、データ ボリュームの基本的な使用法を説明します。 上記で使用した nginx イメージを例にとると、コンテナを実行するときに、次のコマンドでデータ ボリュームを指定できます。 docker run -itd --name nginx -v /usr/share/nginx/html/ -p 80:80 bc26f1ed35cf 操作効果は以下のとおりです。 この時点で、データ ボリュームを作成し、コンテナの 次に、docker inspect コマンドを使用して、作成したコンテナの詳細を表示し、次のようにデータ ボリューム マッピング ディレクトリを見つけます。 ご覧のとおり、Docker はデフォルトでホストの このとき、このディレクトリ配下のファイル内容は、コンテナ内の ヒント: Mac 上の Docker は少し特殊なため、Linux 環境であれば上記の /var/lib/xxxx ディレクトリに直接入ることができます。Mac の場合は、まず次のコマンドを実行して、新しく入力したコマンドラインで /var/lib/xxx ディレクトリに入る必要があります。 画面 ~/Library/Containers/com.docker.docker/Data/vms/0/tty 次に、ファイル内の index.html ファイルの内容を次のように変更します。 echo "hello volumes">index.html 変更が完了したら、ブラウザに戻り、http://localhost と入力して nginx の index.html ページのデータを表示し、変更されていることを確認します。これは、ホスト マシン内のファイルがコンテナーと共有されていることを示します。 ホストディレクトリと組み合わせる 上記のデータボリュームの使用は最適な解決策ではありません。一般的には、ホストマシン上のディレクトリをコンテナにマウントするように明示的に指定する必要があります。指定方法は次のとおりです。 docker run -itd --name nginx -v /Users/sang/blog/docker/docker/:/usr/share/nginx/html/ -p 80:80 bc26f1ed35cf これにより、ホストの この使用方法は、コンテナを再デプロイしたり再起動したりする必要がなく、開発やテストに非常に便利です。 注: ホストアドレスは絶対パスです その他の操作 Dockerfile のデータボリューム 開発者が Dockerfile を使用してイメージをビルドする場合は、イメージをビルドするときにデータ ボリュームを宣言することもできます。次に例を示します。 nginxから https://www.baidu.com/img/bd_logo1.png /usr/share/nginx/html/ を追加します。 実行 echo "hello docker volume!">/usr/share/nginx/html/index.html ボリューム /usr/share/nginx/html/ このようにして匿名データボリュームが構成され、動作中は すべてのデータボリュームを表示 すべてのデータ ボリュームを表示するには、次のコマンドを使用します。 docker ボリューム ls 図に示すように: データ量の詳細を表示 次のようにボリューム名に応じてデータの詳細を表示できます。 docker ボリューム検査 実行結果は以下のとおりです。 データボリュームの削除
バッチ削除中に、すべてのデータ ボリュームが削除されず、1 つが残りました。これは、データ ボリュームがまだ使用中であるためです。図に示すように、関連するコンテナーを停止して削除し、データ ボリュームを再度削除すると、正常に削除されます。 データボリュームコンテナ データ ボリューム コンテナーは、データ ボリュームをマウントするために特別に使用されるコンテナーです。このコンテナーは主に他のコンテナーによって参照され、使用されます。いわゆるデータ ボリューム コンテナーは、実際には以下に示すように通常のコンテナーです。
次の方法を使用してデータ ボリューム コンテナーを作成します。 docker run -itd -v /usr/share/nginx/html/ --name mydata ubuntu コマンド実行効果は次のとおりです。
データ ボリューム コンテナーを参照するには、次のコマンドを使用します。 docker run -itd --volumes-from mydata -p 80:80 --name nginx1 nginx docker run -itd --volumes-from mydata -p 81:80 --name nginx2 nginx この時点で、nginx1 と nginx2 は両方とも同じデータ ボリュームを この時点で、 要約する この記事では主にデータボリューム内のコンテナ操作について紹介します。全体的に非常に簡単です。皆さん、理解できましたか? 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Javascript実践におけるコマンドモードの詳しい説明
>>: mysql エラー 1045 (28000) - ユーザーへのアクセスが拒否される問題を解決する方法
1.Jenkinsのインストール手順: https://www.jb51.net/article/1...
ダウンロードしたバージョンは、Zip 解凍版、Windows システムです。長い間 Windows ...
<br />オリジナルURL: http://www.lxdong.com/post/m...
目次1 概念上の区別2 事例紹介3 クエリパフォーマンス4 アップデートのパフォーマンス4.1 記憶...
mysql ストレージ エンジン: MySQL サーバーはモジュール スタイルを採用しており、特にス...
CentOS8.0-1905 のリリース後、FTP サーバーを CentOS の新しいバージョンに移...
このチュートリアルでは、UbuntuにMySQL 5.7.10を手動でインストールする手順を参考まで...
この記事では、MySQL 5.7.27 winx64のインストールと設定方法を参考までに紹介します。...
質問質問 1: トランザクションをコミットするときに REDO ログをフラッシュすることによって発生...
要約すれば: 1. データベースの設計とテーブルの作成時にパフォーマンスを考慮する2. SQLの記述...
1. CLionをダウンロード、インストール、アクティベートするオンラインで提供されるチュートリアル...
問題の説明ご存知のとおり、CSS を記述する場合、HTML のクラスの定義または ID の定義に従っ...
nginx リバース プロキシを設定する場合、location と proxy_pass のスラッシ...
js コードをデバッグするには、コード内にデバッガーを記述するか、Chrome で毎回ブレークポイン...
背景すべての業務を Docker の運用管理に移行してから、一連の落とし穴に遭遇しましたが、今回は ...