docker学习系列(四):数据持久化

需要搞清楚一个概念的是,docker的容器设计理念是可以即开即用,用完可以随意删除,而新建容器是根据镜像进行渲染,容器的修改是不会影响到镜像,但是有时候容器里面运行的产生的数据(如mysql)或者配置项(如nginx的nginx.conf)我们又需要保存起来的,因而我们需要对容器某些修改的数据进行挂载。

下面介绍三种持久化数据的方式

1.挂载磁盘到本地

docker run -v 宿主目录:容器挂载的目录 镜像

这时候docker会自动在对应的目录下进行挂载,值得注意的是,如果容器里面没有宿主机对应的目录,那么容器会自动创建对应的目录。如果没有指定宿主目录,那么会自动在/var/lib/docker/volumes/下进行挂载。

2.使用数据容器

可以选择创建docker容器,来作为共享数据的容器。

# 创建数据容器
docker create -v 宿主目录:容器目录 --name 数据容器名字 基于的环境
# 挂载
docker run --volumes-from 数据容器名字 镜像 

3.持久化到镜像

适用于镜像里的某些运行环境的修改,如php-fpm里面还需要多安装一个php-pdo之类的东西。

# 保存更改并生成为一个新的image文件
$ docker commit -m "mess" 镜像id 镜像名字

操作挂载盘

# 查看全部volume
docker volume ls
# 删除对应的volume
docker volume rm volumeid
posted @ 2018-03-19 11:09  {-)大傻逼  阅读(4352)  评论(0编辑  收藏  举报
欢迎转载,转载请注明本文地址。