Docker————数据卷容器,容器互联,镜像创建

1、Docker的数据管理

管理Docker容器中的数据,主要有两种方式:数据卷(Data Volumes)和数据卷容器(DataVolumes Containers).

docker run [-i -t] [--name 容器名] 镜像名:标签 [容器启动命令]		#创建并启动容器
			-P													#使用随机的朱书记端口映射容器端口
			-P 宿主机端口:容器端口									#使用指定的宿主机端口映射容器端口
			-v 宿主机绝对路径:容器绝对路径[:ro]						#将宿主机的目录或文件挂载到容器的数据卷目录
			--volumes-from 数据卷容器名							#共享数据卷容器的数据卷目录,实现容器与容器之间的数据共享
			--link 目标容器名:连接别名								#创建容器互联,实现在容器内通过目标容器名或连接别名与目标容器通信

(1)数据卷

数据卷:经过宿主机,实现不同容器与宿主机的数据共享

数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于Linux下对目录进行的mount操作。

将宿主机目录/var/www/html挂载到容器的/opt/www中。

注意宿主机本地目录的路径必须使用绝对路径。如果路径不存在,Docker会自动创建相应路径。

ls /var/www/html
docker run -id --name scj -v /var/www/html:/data centos:7 bash  #-v选项可以在容器内创建数据卷
docker exec -it scj bash   
echo 'tj' > /data/scj.txt
 
宿主机查看
cd /var/www/html
cat scj.txt

宿主机追加内容验证

echo 'scj like tj' > tj.txt
cat tj.txt
 
容器查看
cat /date/tj.txt

挂载宿主机目录间接实现数据共享

docker run -id --name a2 -v /var/www/html:/mnt centos:7 bash
docker exec -it a2 bash

由于容器a2创建运行时,指定的宿主机挂载目录与a1相同,因此也可以加载到其中的数据

因为处于共享状态,在任意容器或共享宿主机目录中创建修改内容互相都能实时更新

挂载文件

docker run -id --name a3 -v /var/www/html/zx.txt:/mnt/zx.txt centos:7 bash
docker exec -it a3 bash
cat mnt/zx.txt
 
宿主机共享目录
echo 'scj is shuaige!!' > /var/www/html/zx.txt
容器共享目录下查看
cat mnt/zx.txt

只读操作(只允许容器中文件只读)

docker run -id --name yzl -v /var/www/html/tj.txt:/mnt/tj.txt:ro centos:7 bash  
#ro代表只允许只读操作

(2)数据卷容器

数据卷容器:不经过宿主机,实现容器间的数据共享

如果需要在容器之间共享数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。

docker run -id --name a1 -v /data1 -v /data2 centos:7 bash   #创建一个容器作为数据卷容器
docker run -id --name a2 --volumes-from a1 centos:7 bash
docker run -id --name a3 --volumes-from a1 centos:7 bash
#使用 --volumes-from 来挂载 a1 容器中的数据卷到新的容器
docker exec -it a1 bash
echo 'scj' > data1/cwk.txt
echo 'tj' > data2/cwk.txt

a1创建数据 

docker exec -it a2 bash
ls data1
ls data2
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值