Docker整理ノート(三)
3012 ワード
DockerストレージボリュームDockerストレージは多層連合マウント方式で実現され、上層読み書き(マーキング方式)、下層読み取り専用、書き込み時にコピーされる.利点:最下位ミラーは変更しない欠点:i/0効率の低下データ共有できないコンテナ削除はストレージボリュームを失う(volume):コンテナ自体のストレージが限られており、閉じた後にデータが失われるため、ローカルディスクまたは共有ディスクのファイルシステムをコンテナにバインドすることができるため、コンテナが閉じてもデータはローカルに永続的に保存されます.Aマウントボリュームのバインド手動指定B docker管理ボリュームdockerデフォルト指定
例:-vファイルシステムパス:containerパスファイルシステムを指定しない場合はデフォルトdocker管理ボリューム方式
containerの詳細を表示すると、マウント状況が表示されます:docker inspect b 2
このディレクトリで正しいかどうかをテストします.
本物に行ってみてください.
つまり、コンテナが削除されても、新しいコンテナを作成したときにデータファイルを再指定すれば、Webサービスを開始すれば、Webを復元できます.
同じボリュームを複数のコンテナで使用することもできます:方法1:
方法2:コンテナを作成するには、別のコンテナストレージボリュームと同じ設定を指定します:–volimes-fromテンプレートコンテナ
以前のアライアンスネットワークを加えてlntmモデルを作成することができ、nginx tomcat mysqlはnetwork ipc mount UTSを共有し、彼らの間でloネットワークカードを通じて情報を伝達することができます.
情報を表示する場合は、ansibleのテンプレートのように「辞書」を指定して表示することもできます.
Docker file
例:-vファイルシステムパス:containerパスファイルシステムを指定しない場合はデフォルトdocker管理ボリューム方式
[root@docker ~]# docker run -it --name b2 -v /data busybox
/ # ls
bin data dev etc home proc root sys tmp usr var
/ # cd data/
/data # ls
/data #
containerの詳細を表示すると、マウント状況が表示されます:docker inspect b 2
"Mounts": [
{
"Type": "volume",
"Name": "fb119439f5fbf83d1a8f9b0914ff457fced9859c960e126ce94932d36cc0a8f1",
"Source": "/var/lib/docker/volumes/fb119439f5fbf83d1a8f9b0914ff457fced9859c960e126ce94932d36cc0a8f1/_data",
"Destination": "/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
このディレクトリで正しいかどうかをテストします.
[root@docker ~]# docker run -it --name b2 -v /data busybox
/ # ls
bin data dev etc home proc root sys tmp usr var
/ # cd data/
/data # ls
/data # touch a.sh
/data # ls
a.sh
/data #
本物に行ってみてください.
[root@docker ~]# cd /var/lib/docker/volumes/fb119439f5fbf83d1a8f9b0914ff457fced9859c960e126ce94932d36cc0a8f1/_data
[root@docker _data]# ls
a.sh
つまり、コンテナが削除されても、新しいコンテナを作成したときにデータファイルを再指定すれば、Webサービスを開始すれば、Webを復元できます.
同じボリュームを複数のコンテナで使用することもできます:方法1:
[root@docker ~]# docker run --name b3 -it --rm -v /data/a:/etc busybox
/ # ls
bin dev etc home proc root sys tmp usr var
/ # cd /etc/
/etc # touch a.sh
/etc # ls
a.sh hostname hosts resolv.conf
/etc #
[root@docker ~]# docker run --name b1 -it --rm -v /data/a:/data busybox
/ # ls
bin data dev etc home proc root sys tmp usr var
/ # cd data/
/data # ls
a.sh hostname hosts resolv.conf
/data #
方法2:コンテナを作成するには、別のコンテナストレージボリュームと同じ設定を指定します:–volimes-fromテンプレートコンテナ
[root@docker ~]# docker run --name b4 -it --rm --volumes-from b3 busybox
/ # ls etc/
a.sh hostname hosts resolv.conf
/ #
以前のアライアンスネットワークを加えてlntmモデルを作成することができ、nginx tomcat mysqlはnetwork ipc mount UTSを共有し、彼らの間でloネットワークカードを通じて情報を伝達することができます.
情報を表示する場合は、ansibleのテンプレートのように「辞書」を指定して表示することもできます.
[root@docker ~]# docker inspect -f {{.NetworkSettings}} zw
{{ 1a9913b0c8a7b841da601ec61021898c062584dec87501cfc9aab00b850450e6 false 0 map[] /var/run/docker/netns/1a9913b0c8a7 [] []} { 0 0 } map[bridge:0xc420184b40]}
Docker file