Docker学习笔记 - Docker的数据卷容器

时间:2022-05-24 09:45:53

一、什么是数据卷容器

如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。

数据卷容器:用于容器间的数据共享,主动挂载宿主机目录,用于其他容器挂载和共享。

二、数据卷容器的操作

1、创建数据卷容器

$ sudo docker run -d -v /dbdata --name dbdata training/postgres echo "Welcome!"

2、其他容器挂载数据卷容器

docker run --volumes-from [CONTAINER-NAME]

3、删除数据卷容器

如果删除了挂载的容器(包括 dbdata、db1 和 db2),数据卷并不会被自动删除。

如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时使用 docker rm -v 命令来指定同时删除关联的容器。 这可以让用户在容器之间升级和移动数据卷。

4、利用数据卷容器来备份、恢复、迁移数据卷

三、一个例子

1、#  创建数据卷容器

$ docker run -d -v /dbdata --name dvt4 lexiaofei/dvt

# ls

#touch /datavolume1/dvt4_1

# exit

2、启动容器dvt5挂载数据卷容器

$  docker run -it --name dvt5 --volumes-from dvt4 ubuntu /bin/bash

# ls

# ls /dbdata

# touch /dbdata /dvt5_1

# ls /dbdata

# exit

3、启动容器dvt6挂载数据卷容器

$ docker run -it --name dvt6--volumes-from dvt4 ubuntu /bin/bash

# ls -l

# exit

4、删除容器(只要有连接的,删不掉的!)

$ docker rm dvt4

# docker restart dvt5

# docker attach dvt5

# ls

# exit

* 数据卷容器不一定能真正删除,只要有容器在引用,数据卷就一直存在

* 数据卷容器停止后,数据卷在活着的容器中仍然可用