Docker数据管理:Named volume
Docker中可以使用Named volume和data container来进行数据的管理。
单一Container的使用Helloworld
Step 1:创建一个Named Volume
事前确认volume的信息,没有VOLUME存在
[root@host88 volumes]# docker volume lsDRIVER VOLUME NAME[root@host88 volumes]#
确认/var/lib/docker/volumes的状况
[root@host88 volumes]# pwd/var/lib/docker/volumes[root@host88 volumes]# lltotal 0[root@host88 volumes]#
创建一个名为volname的数据卷,通过-v参数可以进行创建,同时也可以通过docker volume create来创建。
[root@host88 volumes]# docker run -it -v volname:/volumedata/dbdata debianroot@b2e3523a6dd9:/# cd volumedata/dbdataroot@b2e3523a6dd9:/volumedata/dbdata# ls -ltotal 0root@b2e3523a6dd9:/volumedata/dbdata#
在Container外部确认此事volname是否已经创建成功
[root@host88 volumes]# docker volume lsDRIVER VOLUME NAMElocal volname[root@host88 volumes]#
确认/var/lib/docker/volumes下面 的情况
[root@host88 volumes]# pwd/var/lib/docker/volumes[root@host88 volumes]# lltotal 0drwxr-xr-x 3 root root 18 Jul 25 06:23 volname[root@host88 volumes]# find . -type f[root@host88 volumes]# find . -type d../volname./volname/_data[root@host88 volumes]#
除了目录结构没有任何文件存在
Step 2:在Container中保存数据Hello world
root@b2e3523a6dd9:/volumedata/dbdata# ls -ltotal 0root@b2e3523a6dd9:/volumedata/dbdata# echo "hello, world" >>helloworldroot@b2e3523a6dd9:/volumedata/dbdata# cat helloworldhello, worldroot@b2e3523a6dd9:/volumedata/dbdata# ls -ltotal 4-rw-r--r-- 1 root root 13 Jul 25 06:26 helloworldroot@b2e3523a6dd9:/volumedata/dbdata#
在外部确认该信息是否已经存在
[root@host88 volumes]# pwd/var/lib/docker/volumes[root@host88 volumes]# find . -type f./volname/_data/helloworld[root@host88 volumes]# cat ./volname/_data/helloworldhello, world[root@host88 volumes]#
Step 3:在外部直接修改该文件
[root@host88 volumes]# pwd/var/lib/docker/volumes[root@host88 volumes]# find . -type f./volname/_data/helloworld[root@host88 volumes]# cat ./volname/_data/helloworldhello, world[root@host88 volumes]# echo "hell, this is `hostname`" >>./volname/_data/helloworld[root@host88 volumes]# cat ./volname/_data/helloworldhello, worldhell, this is host88[root@host88 volumes]#
在内部确认信息
root@b2e3523a6dd9:/volumedata/dbdata# ls -ltotal 4-rw-r--r-- 1 root root 34 Jul 25 06:29 helloworldroot@b2e3523a6dd9:/volumedata/dbdata# cat helloworldhello, worldhell, this is host88root@b2e3523a6dd9:/volumedata/dbdata#
从Container中退出前再追加一条信息
root@b2e3523a6dd9:/volumedata/dbdata# echo "hello, I will exit from `hostname`" >>helloworldroot@b2e3523a6dd9:/volumedata/dbdata# cat helloworldhello, worldhell, this is host88hello, I will exit from b2e3523a6dd9root@b2e3523a6dd9:/volumedata/dbdata#
新闻热点
疑难解答