Docker データ ボリュームの整理に関する最も詳細なチュートリアル
この記事では、docker のデータ ボリュームに関する関連知識を提供します。データ ボリュームは、コンテナ間でデータを共有または再利用できます。データ ボリュームの変更は、イメージの更新には含まれません。みんなを助けます。
推奨学習: 「docker ビデオ チュートリアル 」
データ ボリュームとは
使用docker コンテナが作成されると、一連のデータ ファイルが生成されます。これらのデータ ファイルは、docker コンテナが削除されると消えますが、生成されたコンテンツの一部は他の目的に保存されることが期待されます。Docker は環境を適用して実行しますプログラマーは、パッケージ化されてコンテナーにリリースされると、実行プロセス中に生成されるデータの一部が保持されることを期待し、コンテナー間でデータを共有できることを期待します。
一般的に、Docker コンテナーのデータ ボリュームは、一般的に使用される USB ディスクとみなすことができます。これは 1 つ以上のコンテナーに存在し、Docker によってコンテナーにマウントされますが、共同ファイル システムには属しません。コンテナを削除すると、コンテナにマウントされているデータ ボリュームも削除されます。
データ ボリュームの機能
データ ボリュームはコンテナ間でデータを共有または再利用できます
データ ボリュームの変更はすぐに有効になります
データ ボリュームの変更は、イメージの更新には含まれません
#データ ボリュームは、コンテナーが削除された場合でも、デフォルトで常に存在します#データ ボリュームのライフ サイクルは、コンテナーが使用しない限り継続します
コンテナ内のデータ管理
データ ボリューム: データ ボリューム コンテナ内のデータはローカル ホスト環境に直接マッピングされます
データ ボリューム コンテナ:データ ボリューム コンテナ特定のコンテナを使用して、データ ボリュームを維持する
Docker で一般的に使用されるコマンド cp
Syntax
ホスト ファイルをコンテナにコピーする
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
コンテナ内のファイルをホストにコピーする
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
共通パラメータ
##-L: ソースターゲットにリンクを保持します基本的な使用ホストファイルをコンテナにコピーしますdocker cp /data/index.html nginx:/usr/share/nginx/html/index.html
docker cp nginx:/etc/nginx/nginx.conf /data
データ ボリュームに関する注意事項
データ ボリュームをマウントするには、create/start ではなく run で起動コンテナを作成することをお勧めします。起動コンテナを作成します。データボリュームを再度マウントするのは非常に面倒で、多くの設定ファイルを変更する必要がありますが、不可能ではありません。
Docker 公式 Web サイトでは、ファイルをマウントするのではなく、可能な限りディレクトリをマウントすることを推奨していますデータ ボリューム タイプ
ホスト データ ボリューム: ホスト上に直接ファイル システムですが、コンテナーはアクセスできます (バインド マウント)
名前付きデータ ボリューム: ディスク上で Docker によって管理されるデータ ボリュームですが、このボリュームには名前があります。 匿名データ ボリューム: ディスク上で Docker によって管理されるデータ ボリューム。名前がないため見つけるのは簡単ではありません。これらのファイルは Docker によって管理されます。ホスト データ ボリューム
バインド マウント: コンテナ内のデータは、一部の重要なシステム ディレクトリやファイルの中間を含め、ホスト ファイル システムの任意の場所に保存されます。 docker 以外のプロセスでも任意に変更できます。
バインド マウントを使用する場合、ホスト ディレクトリまたはファイルはコンテナーにマウントされます。コンテナーは、マウントするディレクトリまたはファイルの絶対パスに従って、ホストのデータを使用または変更します。ホスト内にディレクトリやファイルが事前に存在している必要はなく、必要に応じて自動的に作成されます。 バインド マウントの使用はパフォーマンスの点で非常に優れていますが、適切に構造化されたファイル システムを備えたホストに依存します。 バインド マウントを使用するコンテナは、重要なシステム ファイルやディレクトリの作成、変更、削除など、コンテナ内のプロセスを通じてホスト ファイル システムを変更できます。この機能は非常に強力ですが、明らかにセキュリティ上の問題も引き起こします。ホスト上の Docker 以外のプロセスへの影響を含む側面への影響Notes空のデータ ボリュームをコンテナ内の空ではないディレクトリにマウントする場合、このディレクトリ ファイルはデータ ボリュームにコピーされます。空ではないデータ ボリュームをコンテナ内のディレクトリにマウントすると、コンテナ内のディレクトリにはデータ ボリューム内のデータが表示されます。元のコンテナー内のディレクトリにデータがある場合、元のデータは非表示になります基本的な使用法構文docker run -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -itd --name mysql --restart always --privileged=true -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin -v /data/mysql:/var/lib/mysql mysql:5.7.31 --character-set-server=utf8 --collation-server=utf8_general_ci
docker run -d -P --name nginx05 -v nginx1:/etc/nginx:ro nginx docker run -d -P --name nginx05 -v nginx2:/etc/nginx:rw nginx
名前付きデータ ボリューム
基本的な使用方法
docker run -itd --name nginx -p 80:80 -v lagouedu-nginx:/etc/nginx nginx:1.19.3-
docker volume inspect lagouedu-nginx
cd /var/lib/docker/volumes/lagouedu-nginx
docker rm $(docker stop $(docker ps -aq))
查看挂载数据是否还存在,通过查看数据,发现删除容器后,宿主机中的数据还存在
ls
匿名数据卷
基本使用
docker run -itd --name nginx -p 80:80 -v /etc/nginx nginx:1.19.3-alpine 查看docker数据卷 docker volume ls
查看宿主机目录
docker volume inspect dbd07daa4e40148b11....
进入docker数据卷默认目录
cd /var/lib/docker/volumes/dbd07daa4e40148b11....
查看文件
ls
所有的文件docker默认保存在_data目录中 cd _data
删除容器
docker rm $(docker stop $(docker ps -aq))
查看挂载数据是否还存在,通过查看数据,发现删除容器后,宿主机中的数据还存在
ls
数据卷容器
run命令
常用参数
--volumes-from
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器
也是一个容器,但是它的目的是专门用来提供数据卷供其他容器挂载。
发现创建好的数据卷容器是处于停止运行的状态,因为使用 —volumes-from 参数所挂载数据卷的容器 自己并不需要保持在运行状态。
基本使用
docker run -d --name data-volume -v /data/nginx:/usr/share/nginx/html -v /data/mysql:/var/lib/mysql centos:7.8.2003 docker run -itd --name nginx01 -p 80:80 --volumes-from data-volume nginx:1.19.3- alpine echo "nginx" > /data/nginx/index.html http://192.168.198.100 docker run -itd --name nginx02 -p 81:80 --volumes-from data-volume nginx:1.19.3- alpine http://192.168.198.100:81 docker run -itd --name mysql01 --restart always --privileged=true -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin --volumes-from data-volume mysql:5.7.31 -- character-set-server=utf8 --collation-server=utf8_general_ci docker run -itd --name mysql02 --restart always --privileged=true -p 3307:3306 -e MYSQL_ROOT_PASSWORD=admin --volumes-from data-volume mysql:5.7.31 -- character-set-server=utf8 --collation-server=utf8_general_ci
推荐学习:《docker视频教程》
以上がDocker データ ボリュームの整理に関する最も詳細なチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

Dockerバージョンを取得するには、次の手順を実行できます。Dockerコマンド「Docker -version」を実行して、クライアントバージョンとサーバーバージョンを表示します。 MacまたはWindowsの場合は、DockerデスクトップGUIのバージョンタブまたはDockerデスクトップメニューのバージョン情報を表示することもできます。

Docker画像を作成する手順:ビルド命令を含むDockerFileを書きます。 Docker Buildコマンドを使用して、ターミナルで画像を作成します。画像にタグを付け、Dockerタグコマンドを使用して名前とタグを割り当てます。

国内のミラーソースに切り替えることができます。手順は次のとおりです。1。構成ファイル/etc/docker/daemon.jsonを編集し、ミラーソースアドレスを追加します。 2。保存して終了した後、Docker Service Sudo SystemCtlを再起動してDockerを再起動して、画像のダウンロード速度と安定性を改善します。

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerに画像を保存するには、Docker Commitコマンドを使用して、指定されたコンテナの現在の状態、Syntax:Docker Commit [Options]コンテナID画像名を含む新しい画像を作成できます。画像をリポジトリに保存するには、Docker Pushコマンド、Syntax:Docker Push Image Name [:Tag]を使用できます。保存された画像をインポートするには、Docker Pullコマンド、Syntax:Docker Pull Image Name [:Tag]を使用できます。

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerプライベートリポジトリを構築して、コンテナ画像を安全に保存および管理し、厳格な制御とセキュリティを提供できます。手順には、リポジトリの作成、アクセスの付与、リポジトリの展開、画像のプッシュ、および画像の引くなどがあります。利点には、セキュリティ、バージョン制御、ネットワークトラフィックの削減、カスタマイズが含まれます。
