検索
ホームページ運用・保守DockerDocker がデータボリュームテクノロジーを要約して共有

この記事では、Docker によって共有されているデータ ボリューム テクノロジに関する関連知識をまとめて紹介します。

Docker がデータボリュームテクノロジーを要約して共有

#Docker データ ボリューム テクノロジー

Docker がデータボリュームテクノロジーを要約して共有

##コンテナ データ ボリュームとはDocker の概念レビュー

アプリケーションと環境をミラーにパッケージ化します。 ######データ?データがコンテナ内にある場合、コンテナを削除するとデータが失われます。要件: データを永続化できる

MySQL. コンテナを削除するとデータベースが削除されて暴走します ---> 要件: MySQL データをローカルに保存できること!

コンテナ間でデータ共有テクノロジが存在する可能性があります。 Dockerコンテナ内で生成されたデータはローカルに同期されます。

これがロールテクノロジーです!ディレクトリのマウント。コンテナ内のディレクトリを Linux× にマウントします。

概要: コンテナーの永続化と同期操作!コンテナ間でのデータ共有も可能!

Docker がデータボリュームテクノロジーを要約して共有

データ ボリュームの使用

docker run -it -v 宿主机目录: 容器目录 -p 主机端口:容器端口 容器id
実践的な演習検査して同期の詳細を表示

コンテナ内にファイルを作成し、それがローカル フォルダに同期されているかどうかを確認します。

Docker がデータボリュームテクノロジーを要約して共有

コンテナが閉じたら、ローカル ファイルを変更して、変更 ファイルはコンテナに同期されますか?

Docker がデータボリュームテクノロジーを要約して共有

Docker がデータボリュームテクノロジーを要約して共有Mysql の実戦

コマンド

docker run -d -p 3310:3306 -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
パラメータ

-d バックグラウンド操作

-p ポートマッピング

-v データボリュームのマウント: データの同期

-e 環境変数の設定: MySQL ログイン パスワードはここに設定されます

--name コンテナ名

##テスト結果: 接続成功

Docker がデータボリュームテクノロジーを要約して共有

発生した問題

最初に使用した mysql の最新バージョン: 8.0----navicat を使用して接続すると、常に不可解なエラーが報告されますDocker がデータボリュームテクノロジーを要約して共有

解決策: バージョン 5.7 に切り替えます。問題ありません。

ミラー mysql を実行するとき、パスワードを設定するために -e MYSQL_ROOT_PASSWORD=123456 を追加しません。コンテナは再起動されても常に閉じられます。オンになります

-e MYSQL_ROOT_PASSWORD=123456 パラメータを追加して完全にオンにします

コンテナを削除しても、ローカルにマウントしたデータ ボリュームは失われません。これにより、コンテナ データの永続化機能が実現されます。

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

#匿名マウント ##- v コンテナー内のパス!

docker run -d --name nginx01 -v /etc/nginx nginx

ここで、これが匿名マウントであることがわかりました。-v の後にコンテナ内のパスを記述しただけで、コンテナの外のパスは記述しませんでした。すべての状況を表示するボリューム

docker volume ls

Named mount

Docker がデータボリュームテクノロジーを要約して共有-v マウントされたボリュームの名前: コンテナ内のパス

docker run -d --name nginx01 -v 具名挂在名称:/etc/nginx nginx

ここでは、これが匿名マウントであることがわかります。-v の後にコンテナ内のパスを記述します。コンテナの外にはパスはありませんが、名前はあります #Docker のコンテンツ ディレクトリ:/var/lib/docker

Docker コンテナ内のすべてのボリュームは、ディレクトリが指定されていない場合、次の場所にあります:/var/lib/docker/volume /xx/_data

名前付きマウントを使用すると、ボリュームの 1 つを簡単に見つけることができます。ボリュームを使用するときに最も一般的に使用される方法は、名前付きマウントです。

Docker がデータボリュームテクノロジーを要約して共有

追加知識

名前付きマウントと匿名マウントの区別方法、マウント先のパスを指定する方法Docker がデータボリュームテクノロジーを要約して共有

-v コンテナ内のパス # 匿名マウント

-v ボリューム名: コンテナ内のパス #Named mount-v /コンテナ外のパス: コンテナ内のパス #パスを指定 mount

Extension

-vコンテナ内のパス: ro rw 読み取りおよび書き込み権限の変更

ro readonly 読み取り専用

rw readwrite 読み取り可能および書き込み可能

一旦设置了这个容器权限,容器对我们挂载出来的内容就有限定了

docker run -d --name nginx01 -v 具名挂在名称:/etc/nginx:ro nginx
docker run -d --name nginx01 -v 具名挂在名称:/etc/nginx:rw nginx

Ro 只要看到ro就说明这个路径只能通过宿主机来进行操作,容器内是无法操作的!

初识Dockerfile

dockerfile

dockerfile就是用来构建docker镜像文件的!命令脚本!先体验一下

通过这个脚本可以生成镜像,镜像是一层一层的,脚本是一个个的命令,每个命令都是一层!

写一个dockerfile

# 创立一个dockerfile文件,名字可以随便的取,最好叫做dockerfile
# 文件中的内容 指令(大写) 参数
FROM centos
VOLUME ["volme01","volume02"]
CMD echo "--------end----------"
CMD /bin/bash
#这里每个指令就是镜像的一层

使用dockerfile生成镜像

docker build -f dockerfile文件位置 -t 镜像名称和版本 镜像生成的位置

Docker がデータボリュームテクノロジーを要約して共有

进入镜像查看详情

Docker がデータボリュームテクノロジーを要約して共有

查看卷的同步目录

docker ps -a

docker inspect 容器id

Docker がデータボリュームテクノロジーを要約して共有

最后测试两个文件夹中是不是同步

同步成功

总结

使用dockerfile构建镜像的方式在我们未来的使用中非常的多,因为我们通常会构建自己的镜像

假设构建镜像时候没有挂载卷,要手动镜像挂载-v

数据卷容器

实际上即使保证的容器之间的数据共享的问题

Docker がデータボリュームテクノロジーを要約して共有

数据卷容器实际上就是被拷贝数据的容器(A- volumes-from ->B,B是数据卷容器)

测试两个镜像之间同步

首先先开三个容器

创建docker01

Docker がデータボリュームテクノロジーを要約して共有

创建docker02  --volumes-from docekr01

Docker がデータボリュームテクノロジーを要約して共有

创建docker03  --volumes-from docekr02

Docker がデータボリュームテクノロジーを要約して共有

查看docker01和docker03之间的数据共享

Docker がデータボリュームテクノロジーを要約して共有

接着我们将docker02删除,查看docker01和docker03之间的数据共享

Docker がデータボリュームテクノロジーを要約して共有

总结:

Docker がデータボリュームテクノロジーを要約して共有

实现多个mysql之间的数据共享

  docker run -d -p 3310:3306 -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
  docker run -d -p 3310:3306 --volumes-from mysql01 -e MYSQL_ROOT_PASSWORD=123456 --name 
  mysql02 mysql:5.7

总结:

容器之间配置信息的传递。数据卷容器的声明周期一直持续到没有容器使用位置

理解:容器之间只要是共享就会数据copy,即使有的容器被删除,数据依然存在,直到所有共享 的容器都删除,数据才会被彻底删除

但是一旦你持久化到了本地,这个时候,本地的数据是不会删除的。

推荐学习:《docker视频教程

以上がDocker がデータボリュームテクノロジーを要約して共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は掘金で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Linuxコンテナ:Dockerの基礎Linuxコンテナ:Dockerの基礎Apr 14, 2025 am 12:14 AM

LXCはDockerの基礎であり、Linuxカーネルのcgroupと名前空間を通じてリソースと環境の隔離を実現します。 1)リソースの分離:CGROUPSは、CPU、メモリ、その他のリソースを制限します。 2)環境分離:名前空間は、独立したプロセス、ネットワーク、およびファイルシステムビューを提供します。

LinuxのDocker:ベストプラクティスとヒントLinuxのDocker:ベストプラクティスとヒントApr 13, 2025 am 12:15 AM

LinuxでDockerを使用するためのベストプラクティスには以下が含まれます。1。ドッケルンコマンドを使用してコンテナを作成および実行します。2。DockerComposeを使用してマルチコンテナーアプリケーションを管理します。3。定期的にクリーニングされていない画像とコンテナ、4。画像サイズを最適化して使用します。これらのプラクティスは、ユーザーがDockerを効率的に使用し、一般的な問題を回避し、コンテナ化されたアプリケーションを最適化するのに役立ちます。

LinuxでDockerを使用:包括的なガイドLinuxでDockerを使用:包括的なガイドApr 12, 2025 am 12:07 AM

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

Docker監視:メトリックの収集とコンテナの健康の追跡Docker監視:メトリックの収集とコンテナの健康の追跡Apr 10, 2025 am 09:39 AM

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

Docker Swarm:スケーラブルで回復力のあるコンテナクラスターの構築Docker Swarm:スケーラブルで回復力のあるコンテナクラスターの構築Apr 09, 2025 am 12:11 AM

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

Kubernetesを備えたDocker:エンタープライズアプリケーション用のコンテナオーケストレーションKubernetesを備えたDocker:エンタープライズアプリケーション用のコンテナオーケストレーションApr 08, 2025 am 12:07 AM

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

Dockerのトラブルシューティング:一般的な問題の診断と解決Dockerのトラブルシューティング:一般的な問題の診断と解決Apr 07, 2025 am 12:15 AM

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

Dockerインタビューの質問:DevOpsエンジニアリングインタビューをエースDockerインタビューの質問:DevOpsエンジニアリングインタビューをエースApr 06, 2025 am 12:01 AM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール