方法: 1. run コマンドを使用します。構文は「docker run --name test1 -it -v」です。 2. dockerfile の VOLUME 命令を使用してマウント ポイントを作成します。構文は「VOLUME」です。 ["/data1" ,"/data2"]"; 3. コンテナ共有ボリュームを使用します。
このチュートリアルの動作環境: linux7.3 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
Docker のマウント方法は何ですか?
VOLUME 命令を紹介する前に、次のシナリオ要件を見てみましょう:
1. コンテナーは、以下に基づいて作成されます。最後に、コンテナ ファイル システムには、イメージの読み取り専用レイヤと書き込み可能レイヤが含まれており、コンテナ内のプロセス操作のデータ永続性は、コンテナの書き込み可能レイヤに保存されます。コンテナーが削除されると、手動でバックアップしない限り (またはコンテナーに基づいて新しいイメージを作成しない限り) データは失われます。コンテナプロセスによって永続化されたデータはホスト上に保存できますか?この方法では、コンテナーが削除されても、データはまだ存在します。
2. Web アプリケーションを開発する場合、開発環境はホストに対してローカルですが、実行テスト環境は Docker コンテナ上に配置されます。
この場合、ホスト上のファイル (html、js など) を変更した後、それらをコンテナーに同期する必要があります。こちらの方が明らかに面倒です。
3. 複数のコンテナが一連の関連サービスを実行しますが、データを共有したい場合はどうすればよいでしょうか?
これらの問題に対しては、確かにさまざまな解決策を考えることができます。 Docker 自体は、ホスト上のディレクトリをコンテナ内のディレクトリ (マウント ポイントまたはボリュームと呼ばれます) に関連付けることができるメカニズムを提供します。コンテナ上のマウント ポイントの下のコンテンツはホストです。ディレクトリのコンテンツは次のようになります。 Linux システムでのマウント メカニズム。この場合、ホスト上のディレクトリの内容を変更するときに、コンテナを同期する必要はなく、コンテナに対して即座に反映されます。マウント ポイントは複数のコンテナで共有できます。
具体的な実装メカニズムを紹介しましょう。
最初に docker run コマンドを渡します
1. 次のコマンドを実行します: docker run --name test -it -v /home/xqh/myimage:/data ubuntu /bin/bash
-v フラグは、コンテナー (コンテナー内のディレクトリー) にマウント ポイント /data を設定し、ホスト上の /home/xqh/myimage ディレクトリーの内容を /data に関連付けます。
このようにして、コンテナーの /data ディレクトリに対する操作とホスト上の /home/xqh/myimage に対する操作は、これら 2 つのディレクトリが実際にホスト ディレクトリを指しているため、リアルタイムで完全に同期されます。
2. コマンドを実行します: docker run --name test1 -it -v /data ubuntu /bin/bash
上記の -v マークは、コンテナーのマウント ポイントを設定するだけです。関連するホスト ディレクトリを指定しません。このとき、docker はホスト上のディレクトリを自動的にバインドします。 docker Inspection コマンドを使用して表示できます。
xqh@ubuntu:~/myimage$ docker inspect test1 [ { "Id": "1fd6c2c4bc545163d8c5c5b02d60052ea41900a781a82c20a8f02059cb82c30c", ............................. "Mounts": [ { "Name": "0ab0aaf0d6ef391cb68b72bd8c43216a8f8ae9205f0ae941ef16ebe32dc9fc01", "Source": "/var/lib/docker/volumes/0ab0aaf0d6ef391cb68b72bd8c43216a8f8ae9205f0ae941ef16ebe32dc9fc01/_data", "Destination": "/data", "Driver": "local", "Mode": "", "RW": true } ],
上記の [マウント] の各情報は、コンテナー上のマウント ポイントの情報を記録します。「Destination」の値はコンテナーのマウント ポイント、「Source」の値は対応するホスト ディレクトリです。このメソッドに対応するホスト ディレクトリが自動的に作成されることがわかりますが、その目的はホスト上で変更することではなく、複数のコンテナで共有することです。
2 dockerfile を使用してマウント ポイントを作成する
上で紹介した docker run コマンドの -v フラグによって作成されたマウント ポイントは、作成されたコンテナに対してのみ有効です。 dockerfile の VOLUME ディレクティブを通じてイメージ内にマウント ポイントを作成できるため、イメージを通じて作成されたすべてのコンテナーにマウント ポイントが設定されます。もう 1 つの違いは、VOLUME コマンドによって作成されるマウント ポイントは、ホスト上の対応するディレクトリを指定できず、自動的に生成されることです。
#test FROM ubuntu MAINTAINER hello1 VOLUME ["/data1","/data2"]
上記の dockfile ファイルは、VOLUME 命令を通じて 2 つのマウント ポイント /data1 および /data2 を指定します。
この dockerfile によって作成されたイメージによって生成されたコンテナーを表示するには、docker Inspection を使用します。を実行すると、次の情報が表示されます。
"Mounts": [ { "Name": "d411f6b8f17f4418629d4e5a1ab69679dee369b39e13bb68bed77aa4a0d12d21", "Source": "/var/lib/docker/volumes/d411f6b8f17f4418629d4e5a1ab69679dee369b39e13bb68bed77aa4a0d12d21/_data", "Destination": "/data1", "Driver": "local", "Mode": "", "RW": true }, { "Name": "6d3badcf47c4ac5955deda6f6ae56f4aaf1037a871275f46220c14ebd762fc36", "Source": "/var/lib/docker/volumes/6d3badcf47c4ac5955deda6f6ae56f4aaf1037a871275f46220c14ebd762fc36/_data", "Destination": "/data2", "Driver": "local", "Mode": "", "RW": true } ],
2 つのマウント ポイントの情報が表示されます。
3 コンテナーの共有ボリューム (マウント ポイント)
次に、/data1 および /data2 ボリュームを test1 (既に作成されたコンテナー) と共有できる別のコンテナーを作成します。これは docker run で行われます。次のような --volumes-from タグを使用します。
は、
docker run --name test2 -it --volumes-from test1 ubuntu /bin/bash
のように、異なるミラーからのものにすることも、
docker run --name test3 -it --volumes-from test1 myimage /bin/bashのように、同じミラーからのものにすることもできます。
上記の 3 つ test1、test2、test3 の各コンテナには /data1 と /data2 という 2 つのディレクトリがあり、ディレクトリ内の内容は共有されており、いずれかのコンテナが内容を変更すると、他のコンテナもその内容を取得できます。
4 つのベスト プラクティス: データ コンテナ
複数のコンテナでデータ (永続データベース、構成ファイル、データ ファイルなど) を共有する必要がある場合は、特定のデータ コンテナの作成を検討できます。コンテナには 1 つ以上のボリュームがあります。
他のコンテナは、-volumes-from を通じてこのデータ コンテナのボリュームを共有します。
コンテナのボリュームは基本的にホスト上のディレクトリに対応するため、このデータ コンテナを起動する必要はありません。
例: docker run --name dbdata myimage echo "data container"
注: ボリュームがあり、コンテナ間でデータを共有する方が便利ですが、必要な問題もたくさんあります。アクセス許可の制御、データのバックアップ、ボリュームの削除などの解決策が必要です。これらの内容は次回以降の記事で紹介していきます。
推奨される学習: 「docker ビデオ チュートリアル 」
以上がdockerのマウント方法にはどのようなものがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

LinuxでDockerを使用すると、開発と展開の効率が向上する可能性があります。 1。Dockerのインストール:スクリプトを使用して、ubuntuにDockerをインストールします。 2.インストールの確認:sudodockerrunhello-worldを実行します。 3。基本的な使用法:NginxコンテナDockerrun-Namemy-Nginx-P8080を作成します:80-Dnginx。 4。高度な使用法:カスタム画像を作成し、DockerFileを使用してビルドして実行します。 5。最適化とベストプラクティス:マルチステージビルドとドッケルコンポスを使用して、DockerFilesを作成するためのベストプラクティスに従ってください。

Docker監視の中核は、主にCPUの使用、メモリ使用、ネットワークトラフィック、ディスクI/Oなどのインジケーターを含む、コンテナの動作データを収集および分析することです。 Prometheus、Grafana、Cadvisorなどのツールを使用することにより、コンテナの包括的な監視とパフォーマンスの最適化を実現できます。

DockerSwarmは、スケーラブルで非常に利用可能なコンテナクラスターを構築するために使用できます。 1)dockerswarminitを使用して群れクラスターを初期化します。 2)swarmクラスターに参加して、dockerswarmjoinを使用します。 3)DockerServiceCreate-Namemy-Nginxを使用してサービスを作成します - Replicas3nginx。 4)dockerstackdeploy-cdocker-compose.ymlmyAppを使用して複雑なサービスを展開します。

DockerとKubernetesを使用して、エンタープライズアプリケーションのコンテナオーケストレーションを実行する方法は?次の手順で実装します。Dockerイメージを作成し、DockerHubにプッシュします。 Kubernetesで展開とサービスを作成して、アプリケーションを展開します。 Ingressを使用して外部アクセスを管理します。パフォーマンスの最適化と、マルチステージの構築やリソースの制約などのベストプラクティスを適用します。

Docker FAQは、次の手順で診断および解決できます。1。コンテナのステータスとログを表示、2。ネットワーク構成を確認します。これらの方法により、Dockerの問題を迅速に配置して固定し、システムの安定性とパフォーマンスを向上させることができます。

Dockerは、DevOpsエンジニアにとって必須のスキルです。 1.Dockerは、アプリケーションとその依存関係をコンテナにパッケージ化することにより、分離と移植性を実現するオープンソースのコンテナ化されたプラットフォームです。 2. Dockerは、名前空間、コントロールグループ、フェデレーションファイルシステムで動作します。 3。基本的な使用には、コンテナの作成、実行、管理が含まれます。 4.高度な使用法には、DockerComposeを使用してマルチコンテナーアプリケーションを管理することが含まれます。 5.一般的なエラーには、コンテナ障害、ポートマッピングの問題、データの持続性の問題が含まれます。デバッグスキルには、ログの表示、コンテナの入り、および詳細情報の表示が含まれます。 6.パフォーマンスの最適化とベストプラクティスには、画像の最適化、リソースの制約、ネットワーク最適化、DockerFileを使用するためのベストプラクティスが含まれます。

Dockerセキュリティの強化方法は次のとおりです。1。-cap-dropパラメーターを使用してLinux機能を制限します。2。読み取り専用コンテナを作成します。これらの戦略は、脆弱性の露出を減らし、攻撃者の機能を制限することにより、コンテナを保護します。

Dockervolumeは、コンテナを再起動、削除、または移行すると、データが安全であることが保証されます。 1。ボリュームの作成:Dockervolumecreatemydata。 2。コンテナとマウントボリュームを実行します:Dockerrun-It-Vmydata:/app/dataubuntubash。 3.高度な使用には、データ共有とバックアップが含まれます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

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

WebStorm Mac版
便利なJavaScript開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
