何ですか まず、Docker の概念を見てみましょう。 アプリケーションと実行環境をコンテナにパッケージ化します。実行はコンテナに付随して行われますが、データが永続化され、コンテナ間でデータを共有できることが期待されます。 Docker コンテナによって生成されたデータが、docker commit を通じて新しいイメージを生成してイメージの一部として保存されていない場合、コンテナが削除されると、データは自然に消えてしまいます。 Docker にデータを保存するにはボリュームを使用します。 一言で言えば、RedisのRDBとAOFに似ています。 私に何ができる? ボリュームは、1 つ以上のコンテナーに存在し、Docker によってコンテナーにマウントされるが、Union File System に属していないディレクトリまたはファイルです。そのため、Union FileSystem をバイパスして、永続ストレージまたは共有データにいくつかの機能を提供できます。 ボリュームの設計目的はデータの永続性であり、コンテナのライフサイクルとは完全に独立しています。そのため、コンテナが削除されても、Docker はマウントされたデータ ボリュームを削除しません。 特徴:
要約:
データ量 直接コマンドの追加 docker run -it -v /host 絶対パス ディレクトリ:/コンテナ ディレクトリ イメージ名docker run -it -v /host 絶対パス ディレクトリ:/コンテナ ディレクトリ:ro イメージ名//コマンドでアクセス権を指定、ro: 読み取り専用 データボリュームが正常にマウントされているかどうかを確認します。 docker コンテナ ID を検査する DockerFileを使用して追加する ルートディレクトリに新しいmydockerフォルダを作成し、次のように入力します。 Dockerfile で VOLUME 命令を使用して、イメージに 1 つ以上のデータ ボリュームを追加できます。 DockerFileビルド DockerFile の記述については、Tomcat などの DockerHub にある各イメージの DockerFile ファイルを参照できます: https://github.com/docker-library/tomcat/blob/300ac03f4696c761a81fa10afbb893f3368061de/8.5/jdk8/openjdk-buster/Dockerfile #ボリュームテスト Centosより ボリューム ["/dataVolumeContainer1","/dataVolumeContainer2"] CMD エコー "終了しました、-------成功1" コマンド /bin/bash ビルド後にイメージを生成する 新しいイメージ zzyy/centos を取得する コンテナを実行する 上記の手順により、コンテナ内のボリュームディレクトリアドレスはすでにわかっており、対応するホストディレクトリはどこにあるか 述べる: Docker はホスト ディレクトリをマウントします。Docker アクセスではディレクトリを開けません、権限が拒否されました 解決策: ディレクトリをマウントした後、--privileged=trueパラメータを追加します。 データボリュームコンテナ 何ですか 名前付きコンテナがデータボリュームをマウントし、他のコンテナはこれ(親コンテナ)をマウントすることでデータを共有します。データボリュームをマウントするコンテナをデータボリュームコンテナと呼びます。 コンテナ間の推移的な共有 (--volumes-from) docker run -it --name dco2 --volumes-from dc01 zzyy/cenos // dc01 は最初に作成されたコンテナで、dco2 はデータ共有を実現するために dc01 を継承します。 データ ボリュームは親コンテナ (dc01) によってマウントされます。dc01 が dc02 と dc03 にマウントされ、その後削除された場合でも、データ ボリュームは有効なままです。 構成情報はコンテナ間で転送され、コンテナが使用しなくなるまでデータ ボリュームのライフ サイクルは継続されます。 要約する Docker コンテナのデータボリュームに関する記事はこれで終わりです。Docker コンテナのデータボリュームについての詳細は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Navicat Premium が MySQL 8.0 に接続してエラー「1251」を報告する問題を解決する方法の分析
>>: 入力ボックスのコンテンツプロンプトと非表示機能を実装する JavaScript
昨夜、ブラウザのレンダリングプロセスに関するエッセイを書きましたが、小さなコードで説明しただけでした...
質問通常の開発では、プロジェクトを Tomcat にデプロイする場合、プロジェクトを war パッケ...
1. MySQL Community Server 5.7.16をダウンロードしてインストールします...
この記事では、例を使用して、MySQL アカウント管理の原則と実装方法を説明します。ご参考までに、詳...
ページをナビゲートする2つの方法宣言型ナビゲーション: リンクをクリックしてナビゲーションを実現する...
序文Linux カーネルプログラミングでは、マクロ関数 container_of(ptr, type...
この記事では、簡単なポップアップウィンドウ効果を実現するためのjQueryの具体的なコードを参考まで...
目次1. Redisイメージを取得する2. 6つのRedisコンテナを作成する3. Redisコンテ...
1. 継続的デリバリーとは何かソフトウェア製品の出力プロセスは、ソフトウェアがいつでもリリースできる...
目次1. ランダムなブール値( true / false )を取得する2. 指定された日付が営業日で...
この記事はCentOS 7.3システム環境をベースに、MySQLとRedisのインストールと使用につ...
目次前面に書かれたWC とは何でしょうか?現在の欠陥1. コンポーネント内部イベントのコールバック2...
1. readonly 読み取り専用属性なので、値を取得できます2. 無効: 無効な属性、値を取得で...
<!--[if IE 6]> IE6 のみが認識可能 <![endif]-->...
2017 年に Vulhub に取り組み始めてから、私は厄介な問題に悩まされてきました。Docker...