AKAI TSUKI

System development or Technical something

When I create Volume in Docker, I supply a name.

最初の状態

[root@docker01 ~]# docker volume ls
DRIVER              VOLUME NAME
[root@docker01 ~]

ボリュームに名前を指定して、コンテナを起動

[root@docker01 ~]# docker run -it --rm -v testvol:/data1 -v /data2 centos bash
[root@7a90d1063265 /]

ボリュームが作成された

[root@docker01 ~]# docker volume ls
DRIVER              VOLUME NAME
local               110b97ea56904c05229b9a7ee2c5a9651b3546447c58570984e7af1a1b8ac776
local               testvol
[root@docker01 ~]#

コンテナにて、ボリュームにテキストファイルを作成する

[root@7a90d1063265 /]# echo "message data1" >> /data1/test1.txt
[root@7a90d1063265 /]# echo "message data2" >> /data2/test2.txt
[root@7a90d1063265 /]# cat /data1/test1.txt
message data1
[root@7a90d1063265 /]# cat /data2/test2.txt
message data2
[root@7a90d1063265 /]

コンテナからexitして終了

[root@7a90d1063265 /]# exit
exit
[root@docker01 ~]#

ボリュームの状態

[root@docker01 ~]# docker volume ls
DRIVER              VOLUME NAME
local               testvol
[root@docker01 ~]#

名前をつけたボリュームは--rmオプションで削除されないようですね。

他のコンテナからの参照

[root@docker01 ~]# docker run -it --rm -v testvol:/data centos bash
[root@94ebbbf62868 /]# ls -l /data/
total 4
-rw-r--r-- 1 root root 14 Jun 17 05:48 test1.txt
[root@94ebbbf62868 /]# cat /data/test1.txt
message data1
[root@94ebbbf62868 /]# echo "add message" >> /data/test1.txt
[root@94ebbbf62868 /]# cat /data/test1.txt
message data1
add message
[root@94ebbbf62868 /]# exit
exit
[root@docker01 ~]

Docker Hostから見てみる

[root@docker01 ~]# docker volume ls
DRIVER              VOLUME NAME
local               testvol
[root@docker01 ~]# docker volume inspect testvol
[
    {
        "Name": "testvol",
        "Driver": "local",
        "Mountpoint": "/var/lib/docker/volumes/testvol/_data",
        "Labels": null
    }
]
[root@docker01 ~]# ls -l /var/lib/docker/volumes/testvol/_data/
total 4
-rw-r--r-- 1 root root 26 Jun 17 14:56 test1.txt
[root@docker01 ~]# ls -l /var/lib/docker/volumes/testvol/_data/test1.txt
-rw-r--r-- 1 root root 26 Jun 17 14:56 /var/lib/docker/volumes/testvol/_data/test1.txt
[root@docker01 ~]# cat /var/lib/docker/volumes/testvol/_data/test1.txt
message data1
add message
[root@docker01 ~]#