docker学习笔记整理--(数据管理命令)

数据拷贝

#容器-->宿主机
	docker cp 容器名:目录位置 主机位置 #(如果主机目录不存在,会自动创建)
#宿主机-->容器
	docker cp 主机目录 容器名:目录位置 #(如果容器目录不存在,会自动创建)

数据卷和使用

数据卷
就是宿主机共享给 docker 容器的目录
挂载数据卷

#挂载的时机
 	-create 创建容器时
 	-run 创建、运行容器时
 #语法:
 	docker run -itd --name 容器名 -v 宿主机目录:容器
 	#-v,--volume 指定挂载的目录,推荐使用绝对路径 

权限

# 默认 容器挂载了宿主机目录后,履行 rw 权限。
# 修改为 ro 权限
	docker run -itd --name 容器名-v 宿主机目录名:容器名:ro 镜像名 shell命令
	# 容器 添加了 ro 之后,不能再写 共享目录。但是可以读。 宿主机可以对共享目录rw操作

挂载方式

	# 挂载目录
	docker run -it --name 容器名 -v 宿主机目录:容器目录 镜像名 shell命令
	# 挂载时,宿主机目录和容器目录都可以不存在, 自动创建。
	
#挂载文件
	dockerrun -it --name 容器名 -v 宿主机目录:文件目录 镜像名 shell命令
	# 挂载时,宿主机目录和容器目录都可以不存在, 自动创建

数据卷容器

特性、创建语法

#特性:不要求数据卷容器运行 只要存在即可。
	- create
	- run -itd
	
#创建1
	docker create -it --name 数据容器名 -v 共享的目录 镜像名 shell命令

#创建2
	docker run -it --name 数据容器名 -v 共享的目录 镜像名 shell命令

数据卷容器的挂载使用

#挂载数据卷容器的参数
	--volumes-from 数据卷容器的名字/数据卷容器的ID
#1.创建数据卷容器
	docker create -it --name 数据卷容器名 -v 共享的目录 镜像名 shell命令
#2.启动测试容器1.挂载到数据卷容器
	docker run -itd --name 测试容器1 --volumes-from 数据卷容器 镜像名 shell命令
#3.启动测试容器2,挂载到数据卷容器
	docker run -itd --name 测试容器2 --volumes-from 数据卷容器 镜像名 shell命令
#4.测试数据是否分享
	测试容器1中 创建文件,写入数据
	测试容器2中 可以查看得到
	

数据卷容器的备份

备份步骤

#1.创建一个临时新容器,挂载到数据卷容器上,同时和宿主机建立映射	
	docker run --rm --name 临时容器 --volumes-from 数据卷容器 -v 宿主机目录:临时容器目录 镜像名 shell命令
#2.进入临时容器中
	docker exec -it 临时容器 shell命令
#3.备份数据
	cp -r 原文件所在目录 临时容器中的目录
	或
	tar zcvf 临时容器中的目录/压缩文件名 原文件所在目录
#4.删除临时容器
	exit
#上述2、3、4步骤可以当作shell命令,即可整合:
	docker run --rm --name 临时容器 --volumes -from 数据卷容器 -v 宿主机目录:临时容器中的目录 镜像名 tar zcvf  临时容器中的目录/压缩文件名 原文件所在目录

备份数据还原到数据卷容器

#可以根据备份时的操作推导
	docker run --rm --name 临时容器 --volumes -from 数据卷容器 -v 宿主机目录:临时容器中的目录 镜像名 tar zxvf  临时容器中的目录/压缩文件名 -C /

你可能感兴趣的:(命令)