首页 > 网站 > 建站经验 > 正文

Docker 数据管理Named volume详解

2019-11-02 16:05:25
字体:
来源:转载
供稿:网友

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#
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表