この記事では、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 /datadocker data volumeデータ ボリューム (データ ボリューム) は、1 つ以上のコンテナで使用できる特別なディレクトリであり、ホストをマップします。オペレーティング システム ディレクトリをコンテナに直接コピーします。
データ ボリュームに関する注意事項
データ ボリュームをマウントするには、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コンテナー ディレクトリのアクセス許可コンテナ内のパスに -v を渡します: ro rw 読み取りおよび書き込み権限を変更します ro:readonly read-onlyrw:readwrite readable and writabledocker run - it -v / ホストの絶対パス ディレクトリ:/コンテナ ディレクトリ:ro イメージ名docker run -it -v/ホストの絶対パス ディレクトリ:/コンテナ ディレクトリ:rw イメージ名例:
docker run -d -P --name nginx05 -v nginx1:/etc/nginx:ro nginx docker run -d -P --name nginx05 -v nginx2:/etc/nginx:rw nginxro ro が表示されている限り、このパスはホスト経由でのみ操作でき、コンテナー内では操作できないことを意味します!
名前付きデータ ボリューム
基本的な使用方法
docker run -itd --name nginx -p 80:80 -v lagouedu-nginx:/etc/nginx nginx:1.19.3-alpinedocker データ ボリュームの表示 docker volume lslaguedu-nginx ホスト ディレクトリの表示
docker volume inspect lagouedu-nginxDocker データ ボリュームのデフォルト ディレクトリを入力します
cd /var/lib/docker/volumes/lagouedu-nginxView fileslsDocker のすべてのファイルはデフォルトで _data ディレクトリに保存されます cd _dataDelete容器###
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 サイトの他の関連記事を参照してください。

Dockerを使用する理由は、アプリケーションをパッケージ化、配布、および実行するための効率的でポータブルで一貫した環境を提供するからです。 1)Dockerは、開発者がアプリケーションとその依存関係を軽量のポータブルコンテナにパッケージ化できるようにするコンテナ化されたプラットフォームです。 2)Linuxコンテナテクノロジーとジョイントファイルシステムに基づいて、迅速な起動と効率的な操作を確保しています。 3)Dockerは、マルチステージの構造をサポートし、画像サイズと展開速度を最適化します。 4)Dockerを使用すると、開発と展開プロセスを簡素化し、効率を改善し、環境全体の一貫性を確保できます。

実際のプロジェクトのDockerのアプリケーションシナリオには、展開の簡素化、マルチコンテナーアプリケーションの管理、パフォーマンスの最適化が含まれます。 1.Dockerは、dockerfileを使用してnode.jsアプリケーションを展開するなど、アプリケーションの展開を簡素化します。 2。DockerComposeは、マイクロサービスアーキテクチャのWebやデータベースサービスなどのマルチコンテナーアプリケーションを管理しています。 3.パフォーマンス最適化は、マルチステージ構造を使用して画像サイズを縮小し、健康チェックを通じてコンテナのステータスを監視します。

小さなプロジェクトまたは開発環境でDockerを選択し、大規模なプロジェクトまたは生産環境でKubernetesを選択します。 1.ドッカーは、迅速な反復とテストに適しています。2。Kubernetesは、大規模なアプリケーションの管理と拡張に適した強力なコンテナオーケストレーション機能を提供します。

Linuxは、豊富なツールとコミュニティサポートを提供するネイティブプラットフォームであるため、LinuxでDockerが重要です。 1. docker:sudoapt-getupdateとsudoapt-getinstalldocker-cedocker-ce-clicotainerd.ioを使用します。 2。コンテナの作成と管理:Dockerrun-D-Namemynginx-P80:80NginxなどのDockerrunコマンドを使用します。 3。DockerFileを書き込み:画像サイズを最適化し、マルチステージ構造を使用します。 4。最適化とデバッグ:DockerLogsとDockerexを使用します

Dockerはコンテナ化ツールであり、Kubernetesはコンテナオーケストレーションツールです。 1. Dockerパッケージアプリケーションとその依存関係は、Docker対応環境で実行できるコンテナに依存します。 2。Kubernetesはこれらのコンテナを管理し、自動展開、スケーリング、管理を実装し、アプリケーションを効率的に実行します。

Dockerの目的は、アプリケーションの展開を簡素化し、コンテナ化技術を通じてさまざまな環境でアプリケーションが一貫して実行されるようにすることです。 1)Dockerは、アプリケーションと依存関係をコンテナにパッケージ化することにより、環境の違いの問題を解決します。 2)DockerFileを使用して画像を作成して、アプリケーションがどこでも一貫して実行されることを確認します。 3)Dockerの作業原則は画像とコンテナに基づいており、Linuxカーネルの名前空間とコントロールグループを使用して、分離とリソース管理を実現します。 4)基本的な使用法には、DockerHubからの画像の引き込みと実行が含まれます。高度な使用法には、DockerComposeを使用したマルチコンテナーアプリケーションの管理が含まれます。 5)画像構築の故障やコンテナの障害などの一般的なエラーは、ログやネットワーク構成を介してデバッグできます。 6)パフォーマンス最適化構造

Ubuntu、Centos、およびDebianにDockerをインストールして使用する方法は異なります。 1)ubuntu:aptパッケージマネージャーを使用します。コマンドはsudoapt-getupdate && sudoapt-getinstalldocker.ioです。 2)Centos:Yum Package Managerを使用すると、Dockerリポジトリを追加する必要があります。コマンドは、sudoyumininstall-yyum-utils && sudoyum-config-manager - add-repohttps://download.docker.com/linです

LinuxでDockerを使用すると、開発効率が向上し、アプリケーションの展開を簡素化できます。 1)Ubuntu画像を引く:dockerpullubuntu。 2)ubuntuコンテナを実行:Dockerrun-itubuntu/bin/bash。 3)nginxを含むDockerFileを作成します:fromubuntu; runapt-getupdate && apt-getinstall-ynginx; expose80。 4)画像の作成:dockerbuild-tmy-nginx。 5)コンテナの実行:Dockerrun-D-P8080:80


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック









