Docker数据持久化与容器迁移
上节讲到当容器运行期间产生的数据是不会在写镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入层来保存数据。如果想做到数据持久化,Docker提供数据卷(Data volume)或者数据容器卷来解决问题,另外还可以通过commit提交一个新的镜像来保存产生的数据。那么,来一一看下各自的使用方法。 一、数据卷 数据卷特性: 可以绕过UFS文件系统,为一个或多个容器提供访问。 完全独立于容器的生存周期,因此不会在删除容器时删除其挂在的数据卷。 数据卷特点: 数据卷在容器启动初始化时,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中。 数据卷可以在容器直接共享和重用。 可以直接对数据卷里的内容进行修改。 数据卷的变化不会影响镜像的更新。 卷会一直存在,即使挂载数据卷的容器已经删除。 1.数据卷使用 创建并挂载数据卷: $ sudo docker run -itd --name ubuntu_test1 -v /container_data:/data ubuntu 注:container_data为宿主机目录,/data是容器中目录,目录不存在会自动创建 $ sudo docker inspect ubuntu_test1 "Mounts": [ { "Source": "/container_data", "Destination": "