环境:centos7 64bit

为了解决数据持久化的问题,Docker提供了卷和卷容器机制。

容器中管理数据有两种主要方式:
  • 数据卷;
  • 数据卷容器
数据卷
  • 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性:
    • 数据卷可以在容器之见共享和重用
    • 对数据卷的修改会立马生效
    • 对数据卷的更新不会影响镜像
    • 卷会一直存在,直到没有容器使用
  • 数据卷的使用,类似于Linux下对目录或者文件进行mount操作.

1.直接在容器中创建一个数据卷

docker run -it -v /dockertest centos /bin/bash

2.挂载主机目录作为数据卷

[root@VM_0_9_centos ~]# docker run -it -v /test:/dockertest centos /bin/bash

作用:

将主机中的/test目录文件挂载到容器中的dockertest文件中

容器中的目录结构,新生成了dockertest这个目录

(但貌似主机中如果不存在这个目录的话,也不会报错...)


3.数据卷容器

首先,这个玩意也是一个容器,其他的容器可以通过它达到数据共享,数据迁移的目的。

[root@VM_0_9_centos ~]# docker run -it -v /test --name dbdata1 centos
创建一个名叫dbdata1的容器,将数据卷挂载到/test下,

接下来创建两个新的容器,并且

[root@VM_0_9_centos test]# docker run -it --volumes-from dbdata1 --name db1 centos

[root@VM_0_9_centos test]# docker run -it --volumes-from dbdata1 --name db2 centos
目录结构如下:

也可以看到test文件夹

然后在
db2中做如下的修改:

[root@75ea710d224c /]# cd test
[root@75ea710d224c test]# touch simple
[root@75ea710d224c test]# ls

查看db1容器,


在db2中作出的改动可以直接在db1中看到。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐