『docker in acton』読書ノート:ストレージボリューム
1ストレージボリューム定義
ストレージボリュームは、データの分割と共有のツールです.永続化データまたはコンテナ間共有データに適用
ミラーは、プログラム、プログラムなどの比較的静的なファイルをパッケージ化し、配布するのに適しています.ストレージボリュームには、ログ、データベースなどの動的または専門的なデータがあります.
2ストレージボリュームのタイプ
2.1マウント・ストレージ・ボリュームのバインド
dockerコマンド:
docker run -it -v /study/docker/volume:/home ubuntu:18.04upgraded /bin/bash
-v=–volume、ストレージボリュームをホストのファイルシステムにマウントします.コロンの前はホストホストの絶対パス、コロンの後は、コンテナ内の絶対パスです.ホストのコンテンツはミラーの代わりにこの場所で提供されるコンテンツを操作し、ホームディレクトリの下にフォルダとファイルを作成し、ファイルはhello dockerに書き込まれます.
➜ volume docker run -it -v /study/docker/volume:/home ubuntu:18.04upgraded /bin/bash
root@cbb38893089f:/# cd /home/
root@cbb38893089f:/home# mkdir logs
root@cbb38893089f:/home# touch data.txt
root@cbb38893089f:/home# echo "hello docker" > data.txt
root@cbb38893089f:/home# exit
exit
本機の対応ディレクトリへ
➜ volume cd /study/docker/volume
➜ volume ll
total 8
-rw-r--r-- 1 lvsheng wheel 13 12 30 20:44 data.txt
drwxr-xr-x 2 lvsheng wheel 64 12 30 20:43 logs
➜ volume more data.txt
hello docker
➜ volume
2.2 docker管理ボリューム
dockerコマンド:
docker run -it -v /home --name bind ubuntu:18.04upgraded /bin/bash
-vパラメータを指定してコンテナ内のディレクトリを指定するだけで、管理ボリュームが自動的に作成されます.
➜ volume docker run -it -v /home --name bind ubuntu:18.04upgraded /bin/bash
root@b8503dad0181:/# cd /home
root@b8503dad0181:/home# mkdir logs
root@b8503dad0181:/home# touch data.txt
root@b8503dad0181:/home# echo "hello world" > data.txt
root@b8503dad0181:/home# exit
exit
「docker inspect-f"{{json.Mounts}}}bind」を実行すると、管理ボリュームがホストに対応するディレクトリを表示できます.
lib docker inspect -f "{{json .Mounts}}" bind
[{"Type":"volume","Name":"43d5c90da066ab7b7aeaa01c61f93e8c5daf01d683989fd84cbc9b19d5704e83","Source":"/var/lib/docker/volumes/43d5c90da066ab7b7aeaa01c61f93e8c5daf01d683989fd84cbc9b19d5704e83/_data","Destination":"/home","Driver":"local","Mode":"","RW":true,"Propagation":""}]
Source値が指している本機の位置で、不思議なことにこのディレクトリは私のパソコンに見つからない.DockerFileのVolumeコマンドが生成するのがDockerバインドボリュームです