docker学习——docker数据管理

一.基本概念

数据卷:容器内数据直接映射到本地主机环境

数据卷容器:使用特定容器维护数据卷

二 .相关操作

1.数据卷

(1)在容器内创建一个数据卷

docker run -d -p --name 容器名(web) -v /目录(webapp) 镜像名(ubuntu)

使用ubuntu镜像创建一个web容器,并创建一个数据卷挂载到容器的/webapp目录下

(2)挂载一个主机目录作为数据卷

docker run -d -p --name web -v /src/webapp:/opt/webapp:ro ubuntu

加载主机的/src/webapp目录到容器的/opt/webapp目录

# 加了:ro之后,容器内挂载的数据卷的数据就无法修改。

(3)挂载一个本地主机文件作为数据卷(不推荐)

docker run --rm -it -v ~/.bash:history :/.bash_history ubuntu /bin/bash

2.数据卷容器

docker run -it -v /dbdata --name dndata ubuntu

创建一个数据卷容器dbdata,并创建数据卷挂载到/dbdata

docker run -it --volumes-from dbdata --name db1 ubuntu

docker run -it --volumes-from dbdata --name db1 ubuntu

容器db1和db2都挂载同一个数据卷到相同的/dbdata目录,三个容器任何一方在该目录下写入,其他容器都可看到

3.利用数据卷容器来迁移数据

(1)备份

docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu tar cvf /backup/backup.tar /dbdata

使用--volumes-from dbdata参数来让worker容器挂载dbdata容器的数据卷

使用-v $(pwd):/backup来挂载本地的当前目录到woker容器的/backup目录

使用tar cvf /backup/backup.tar /dbdata命令来将/dbdata下内容备份为容器内的/backup/backup.tar

(2)恢复

docker run -v /dbdata --name dbdata2 ubuntu /bin/back

docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf

你可能感兴趣的:(docker学习——docker数据管理)