ボリュームデータボリュームドッキングウィンドウ機能

ミラーには二つの方法は
、既存の血管に基づいてミラーリングコミット
ベースのミラーリングdockerfileの画像

コンテナ基礎となる技術は:
1.cgroupは
、リソースの割り当て、CPU、メモリ、およびディスクの使用可能
 V1:[ルートzxw99 @〜] -d -m RUN#64M -Cドッカーのhttpd 512
[ルート@ zxw99〜]#のCAT / SYSを/fs/cgroup/cpu/docker/981a911ba02f5f4b8fb06052271de813521a94012f05922f5ee09ee2636d8626/cpu.shares
512


図2に示すように、名前空間の
分離を達成するリソース
PID、UTS、USER、ネットワークは、 MOUNT、IPCのデータボリュームは、ボリューム機能データ量がディレクトリコンテナを可能にする容器の一つ以上のための特別なディレクトリ、およびホストマシンでありますファイルやディレクトリの結合。データボリュームは、永続データに設計されたホストの共有ディレクトリを参照して、NFSマウントがで指摘共有あなたが理解できるデータ量について。主に以下の機能を持っており、特徴のコンテナ内のデータの•永続ストレージコンテナ•間でのリソース共有を•コンテナの移行(分散)データ量の変更は、直ちに有効になります• データボリュームに•更新をミラーリングは影響しません•データをデフォルトのボリュームは常に(注]ドッキングウィンドウの自己管理が削除されます、コンテナを削除する前にデータボリュームのバックアップを作成してください)コンテナが削除された場合でも、存在するデータボリュームの3つの方法で、マシンの特定のディレクトリに1バインドから2.dockerディレクトリ管理、ドッキングウィンドウをランダムバインドホスト既存のコンテナに基づい3. 1.バインドをマウントに存在する特定のディレクトリのボリュームに応じて製本機[ルート@ ken1〜] RUN#ドッカー-v / ken1:は/ var / WWW / httpdの-d -P HTML -vデータ量を指定/ ken1:は/ var / WWW / HTML   #/ ken1ホストのディレクトリで、
 
 
 

 









 
 
 
 





 





/ var / www / htmlと設定ディレクトリ内のコンテナが存在しない場合は、市が自動的に作成され、コンテナ内のディレクトリです!利点:1.簡単に管理するために、あなたは、データの永続性を実装することができます。2. ホスト一顧、コンテナ、またはアクセスできない場合は3を、あなたはNFS共有、複数のホストの負荷分散を使用することができます。2.dockerの自己管理ドッカmanaagermentボリュームこのバインドのと音量差をマウントし、ユーザーはローカルディレクトリに移動するために管理することができないということです。ドッキングウィンドウは、自身がホストのディレクトリを結合する[ルート@ ken1 ken1]#はドッカー実行-d -vは/ usr / local / apache2の/ htdocsに-d -Pのhttpd 次のコマンドを使用して表示できます。[root @ ken1 ken1] #ドッキングウィンドウコンテナ1365d65ead56検査注:あなたは、コンテナが削除されたとき、関連するデータボリュームを削除したい場合は、コンテナが削除されたときに1、デフォルトはドッキングウィンドウのmanagermentのボリューム内のデータボリュームを削除しませんが、ちなみに、あなたはオプションを追加する必要があります- V 2.何-vレガシーデータが削除されません場合はときに、データの量は一人当たりのボリュームを管理するオーファンボリュームと呼ばれているように、容器の容積、孤児の処理量場合は?解決策:ステップ1:ボリュームチェックzxw99 _data]#のLSは/ var / libに/ドッカー/ボリューム/ @ルートを034d0d7b346db801f7f0c92c3bb879acebc28d0e17ba6e6eb91d08802a03d152
 




 



 


 



 





0fc92d717a2bc87384b52c8e3f6ebb4e842be857106410364a4c7be793653509
3aab6aa51cd795b932769a2479104b02585d79da87b7f554d96c45b809e8a5f1
950d114e4f29feaeeb5560f2666e7ce4e03794e812cfdd11ac680dbb63f9286f
A4a83390a954fe8c79bba7a0de157690c47900a354229e3f513bebc99cd7b461
F4f82f58cb91d555d17f230a4bdc52c61ca0b6910538c3ddf1870ccc62bd6346

[root@ken1 ken1]# docker volume ls
DRIVER VOLUME NAME
local 986d19ec31801a630dc5209724560b074b025eacdb7cdf4fbbe3d5e6cc7f0771
local d846455965a7bc208478bf7f6cf2f178263fe455c573504572d4a87f299800a1
local f0d96791e2a60a6edf9b6550625bf568520988ffbaffcfa6353e924b4530dc1c
local fa7bcf028a50a168d8b531eaff2dc74e6207421a5b3347430909d75eb4ad76a4
 
第二步:删除相应的孤儿卷
[root@ken1 ken1]# for i in `docker volume ls | grep -v "DRIVER" | awk '{print $2}'`; do docker volume rm $i ;done
 
在删除容器的时候加上-v
[root@ken1 ken1]# docker container rm -f -v a5e91fa77abe1a5
 
注意:
如果使用-v, 相应的数据卷也会被删掉,如果是在生产环境当中,应当做好数据备份工作!
 
 
3.基于一个容器
[root@ken1 ken1]# docker run -d --volumes-from 1e9a4c3b0bc30295d httpd
–volumes-from是基于一个现有的容器进行数据共享,这个参数后面应当跟上相应的容器ID或者容器名
 
数据卷的生命周期管理
 
1.备份
2.迁移
3.恢复
4.销毁
 
1.备份
备份只需要备份相应的数据卷即可,例如:
[root@ken1 ken1]# docker run -d -v /ken:/var/www/html httpd
再上面的额例子中我们只需要做好/ken这个目录下的文件备份即可!
 
2.恢复
只需要重启一个容器,并且绑定ken下面备份的数据即可
 
3.迁移
把ken下面备份好的数据,发送到相应的节点即可,并使用bind mount volume方式运行容器即可
 
4.销毁
情况一:bind mount volumes
这种情况是绑定宿主机的一个目录,如果想要删除数据,只需要删掉宿主机的目录即可
 
情况二:docker managerment volume
需要在删除容器的时候加上选择-v
 
情况三:基于一个容器
 
分为两种情况:
1,如果是docker自管理,删除容器时使用-v
2.宿主机特定目录,需要删除宿主机上的特定目录
 
 
 
验证:数据卷被其他容器使用是否能够删掉
第一步:创建一个新的容器
[root@ken1 ken1]# docker run -d -v /data httpd
 
第二步:查看数据卷
[root@ken1 ken1]# docker inspect 3b1ce4b5f96150e866f322a600f93cd
...
/var/lib/docker/volumes/b0cfa7ae0abe933392c3e649f3d0bec0185c8357c9673ebc0322920cdab8235e/_data
 
第三步:基于现有容器在创建一个容器并绑定数据卷
[root@ken1 ken1]# docker run -d --volumes-from 3b1ce4b5f96150e866 httpd
 
第四步;查看第二个容器的数据卷
发现数据卷和第一个容器使用的数据卷是一致,说明两个容器现在共用一个数据卷
"Name": "b0cfa7ae0abe933392c3e649f3d0bec0185c8357c9673ebc0322920cdab8235e",
 
 
第五步:查看数据卷
[root@ken1 ken1]# docker volume ls
DRIVER VOLUME NAME
local b0cfa7ae0abe933392c3e649f3d0bec0185c8357c9673ebc0322920cdab8235e
 
第六步:删除第一个容器并加上-v选择
[root@ken1 ken1]# docker rm -f -v 3b1ce4b5f961
3b1ce4b5f961
[root@ken1 ken1]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
70df334b3f25 httpd "httpd-foreground" 2 minutes ago Up 2 minutes 80/tcp wonderful_shamir
39d5f620493b httpd "httpd-foreground" 9 minutes ago Up 9 minutes 80/tcp goofy_herschel
c42a2a22c533 httpd "httpd-foreground" 12 minutes ago Up 12 minutes 80/tcp admiring_wilbur
1e9a4c3b0bc3 httpd "httpd-foreground" 24 minutes ago Up 23 minutes 80/tcp blissful_haslett
a6304e984f93 httpd "httpd-foreground" About an hour ago Up About an hour 0.0.0.0:32778->80/tcp brave_varahamihira
[root@ken1 ken1]# docker volumes ls
docker: 'volumes' is not a docker command.
See 'docker --help'
[root@ken1 ken1]# docker volume ls
DRIVER VOLUME NAME
local b0cfa7ae0abe933392c3e649f3d0bec0185c8357c9673ebc0322920cdab8235e
 
验证总结:
两个容器如果共享了一个数据卷的话,删除一个容器的时候即使加上-v选线的话,即使删除源容器的话数据卷并不会被删除。

 

おすすめ

転載: www.cnblogs.com/itzhao/p/11354213.html