『docker in acton』読書ノート:ストレージボリューム


1ストレージボリューム定義


ストレージボリュームは、データの分割と共有のツールです.永続化データまたはコンテナ間共有データに適用
ミラーは、プログラム、プログラムなどの比較的静的なファイルをパッケージ化し、配布するのに適しています.ストレージボリュームには、ログ、データベースなどの動的または専門的なデータがあります.

2ストレージボリュームのタイプ

  • マウントストレージボリュームをバインドする:このストレージボリュームは物理マシン上のファイルシステム
  • を使用する.
  • docker管理ボリューム:Dockerデーモンは物理マシン上にストレージスペースを作成し、dockerデーモン自身が
  • を管理します.

    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バインドボリュームです