数据卷
宿主机的*/docker/redis-data*目录映射到容器的 /data目录
1 | docker run -v /docker/redis-data:/data \ |
使用下面的语句可以向Redis实例中pipe数据
1 | cat data | docker exec -i r1 redis-cli --pipe |
在主机上可以查看映射的目录里有Redis的数据文件。
1 | ls /docker/redis-data |
同样的文件还可以挂在到第二个容器。其中一个应用就是用docker容器起到数据备份的作用。
1 | docker run -v /docker/redis-data:/backup ubuntu ls /backup |
共享卷
使用*-volumes-from* 可以把源容器的映射的卷映射到目标容器上。
下面的例子,可以把redis容器的卷映射给Ubuntu容器。*/data仅在Redis容器上存在,但是因为-volumes-from*语句,Ubuntu容器也可以访问到数据。
1 | docker run --volumes-from r1 -it ubuntu ls /data |
这样,就可以访问其他容器的卷,而不必关心这个容器是如何跟主机持久化数据的。
只读卷
挂在卷会给容器对目录的全部的读取和写入权限。不过可以使用*:ro*命令来限制为只读权限。
如果容器试图修改数据会发生错误。
1 | docker run -v /docker/redis-data:/data:ro -it ubuntu rm -rf /data |