Docker のコンテナ データ ボリュームの概要

Docker のコンテナ データ ボリュームの概要

Dockerコンテナのデータ量

データがすべてコンテナ内にある場合、コンテナを削除するとデータが失われるため、データが永続的に保持されることが期待されます。
たとえば、MySQL コンテナでは、MySQL コンテナが削除されてもデータが失われないように、データをローカルに保存できることが期待されます。
コンテナ間でデータを共有する技術があります。Docker コンテナで生成されたデータをローカル コンピューターに同期できます。これがボリューム技術です。これは、コンテナ内のディレクトリを Linux にマウントするデータ マウント テクノロジです。

ここに画像の説明を挿入
マウント後、コンテナ内で実行した操作は Linux ホストに同期されます。

データボリュームの使用

方法1: コマンド-vを使用して直接マウントする

docker run -it -v ホストディレクトリ: コンテナディレクトリ#test[root@sumarua home]# docker run -it -v /home/ceshi:/home centos /bin/bash

# 起動後、docker examine container id で確認できます] 

ここに画像の説明を挿入

MySQL データの永続性

[root@sumarua home]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=666666 --name mysql mysql5.7

名前付きマウントと匿名マウント

#匿名マウント -v コンテナパス docker run -d -p --name nginx01 -v /etc/nginx nginx
#すべてのボリュームを表示 docker volume ls

ここに画像の説明を挿入

# 名前付きマウント# -v ボリューム名: コンテナ内のパス docker run -d -p --name nginx02 -v juming-nginx:/etc/nginx nginx
#dockerボリュームlsの表示 

ここに画像の説明を挿入

ボリュームがマウントされている特定の場所を確認できます

docker volume examine [ボリューム名]

ここに画像の説明を挿入

ディレクトリが指定されていない場合、Docker コンテナ内のすべてのボリュームは/var/lib/docker/volumes/xxxx/_dataにあります。
名前を付けてマウントすると、ボリュームを簡単に見つけることができます。
名前付きマウント、匿名マウント、または指定パスマウントであるかどうかを判断する方法

-v コンテナ内のパス #匿名マウント -v ボリューム名: コンテナ内のパス #名前付きマウント -v /host パス: コンテナ内のパス #指定パスマウント

拡大する:

# -v コンテナ パスを使用して読み取りおよび書き込み権限を変更します: ro rw ro readonly #読み取り専用 rw readwrite #読み取りおよび書き込み可能 #デフォルトで読み取りおよび書き込み可能 #コンテナ権限が設定されると、コンテナはマウントするコンテンツを制限します #ro このパスはホスト マシン経由でのみ操作でき、コンテナ内では操作できません。

方法2: Dockerfile

Dockerfile は、Docker イメージを構築するために使用されるビルド ファイルとコマンド スクリプトです。
このスクリプトは画像を生成するために使用できます。画像はレイヤー化されており、スクリプトは 1 つずつコマンドになっており、各コマンドがレイヤーです。

# dockerfile ファイルを作成します。名前はランダムにできます。Dockerfile が推奨されます。
# コンテンツコマンド(大文字)ファイル内のパラメータ FROM centos
ボリューム ["volume01","volume02"]
CMD エコー "----終了----"
コマンド /bin/bash
# ここでの各コマンドは画像のレイヤーです

データボリュームコンテナ

--volumes-from

# 使用方法 [root@sumarua]#docker run -it --name docker02 --volumes-from docker01 sumarua/centos

コンテナ間のデータ同期とデータ共有を実現

ここに画像の説明を挿入

データ ボリューム コンテナーからファイルを削除しても、このコンテナーにマウントされている他のコンテナーのデータ アクセスには影響しません。それはコピーの概念とバックアップコピーのメカニズムです。

ここに画像の説明を挿入

構成情報はコンテナ間で転送されます。データ ボリューム コンテナのライフ サイクルは、コンテナが使用されなくなるまで続きます。
ただし、ローカルに保存されると、ローカル データは削除されません。

要約する

Docker のコンテナ データ ボリュームに関するこの記事はこれで終わりです。関連する Docker データ ボリュームの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerでボリュームを管理する2つの方法
  • Dockerボリューム削除操作
  • Dockerボリュームのファイルマッピング方法
  • Dockerボリュームマウントの実装方法
  • Docker データ ストレージ ボリュームの詳細な説明
  • Docker ボリュームの使用の詳細と例
  • Dockerはデータボリュームにデータを書き込む

<<:  MySQL ストアド プロシージャの作成と呼び出しの詳細な説明

>>:  uni-app WeChatアプレット認証ログイン実装手順

推薦する

HTML の隠しフィールドの紹介と例

基本的な構文: <input type="hidden" name=&qu...

MySQL での order by の使用に関する詳細

目次1. はじめに2. 本文2.1 単一列のソート2.2 複数の列を並べ替える2.3 ソート方法2....

vue3 を使用したジグソーパズルゲームのリファクタリングの例

序文プロジェクト内のパズルゲーム(デジタル華容路とも呼ばれる)を再構築するのに 2 日かかりました。...

史上最もシンプルな MySQL データのバックアップと復元のチュートリアル (パート 1) (パート 35)

データのバックアップと復元に関する最初の記事を皆さんに共有します。具体的な内容は次のとおりです。基本...

MySQL でのデータベース間クエリの例

序文MySQL では、クロスデータベース クエリは主に 2 つの状況に分けられます。1 つは同じサー...

MySQL Installer 8.0.21 インストール チュートリアル (画像とテキスト付き)

1. 理由新しいシステムに MySQL を再インストールする必要があったので、将来詳細を忘れた場合...

Linuxの基本コマンドmktempの詳しい説明

mptemp は安全な方法で一時ファイルまたはディレクトリを作成します。このコマンドの適用範囲: R...

MySQL バッチ挿入とユニークインデックスの問題に対する解決策

MySQL バッチ挿入の問題プロジェクトを開発しているときに、古いシステムの基本データを事前にインポ...

MYSQL ストアドプロシージャと関数の簡単な記述

ストアドプロシージャとは簡単に言えば、これは強力で、JAVA 言語のメソッドに似た比較的複雑な論理関...

MySQL データベースにおける高同時実行性の問題を解決する方法

序文スタートアップ企業が最初はモノリシック アプリケーションを主要なアーキテクチャとして使用し、通常...

Tomcatの再構成後に起動が遅くなる問題を迅速に解決

Jenkins+Tomcatサーバーの設定中に、Tomcat設定ファイルが変更され、サーバーのTom...

HTML に埋め込まれた Flash HTML ウェブページ コードに Flash ファイルを埋め込むソリューション (パート 1)

中国の習慣では、旧暦の1月15日より前に新年を祝います。ここで、庭にいる友人たちに新年の幸せを祈りた...

Docker 経由で wsl の tar ファイルを作成する方法

最近VScodeのリモート開発機能をいじっています。Dockerのコンテナに接続できるほか、WSLに...

HTMLチェックボックス説明テキストをクリックして状態を選択/チェック解除します

Web 開発では、チェックボックスは小さく、ユーザーにとって操作があまり便利ではないため、ユーザーが...

デザイナーが再びハマーの公式サイトに不満を述べる

昨年、この公開書簡は大ヒットし、羅永浩氏を驚かせた。今日、著者が新しい章を発表するとは思ってもみなか...