目录
一.数据卷
- 数据卷是一个提供容器使用的特殊目录
宿主机和容器是两个不同的名称空间,如果想进行连接 需要用ssh,exec和attch也类似于ssh这种方式登录,在企业中ssh这种登陆方式会比较危险,安全漏洞很大,尽量减少ssh这种,杜绝了频繁使用exec,因此使用数据卷的方式把容器内部的文件目录挂载到宿主机指定目录下进行修改,当容器里的文件频繁需要修改时不需要登陆进去,直接使用数据卷方式在宿主机指定的目录下进行修改即可。方便又安全
数据卷原理:将容器内部的配置文件目录,挂载到宿主机指定目录下
数据卷提供的可用特性:
- 数据卷可以在容器之间共享和重用
- 对数据卷的修改会立马生效
- 对数据卷的更新,不会影响到镜像
- 数据卷默认 会一直存在,即使容器被删除
1.挂载数据卷
格式:docker run -v 宿主机目录:挂载容器中的目录
#例
docker run -it -v /var/www/html:/data1 --name test01 centos:7 /bin/bash
#这时候另开一个终端,去宿主机创建一个abc
cd /var/www/html
touch abc
#再回到上一个终端查看/data1目录下就会多出一个abc
二.数据容器卷
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器
数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载
原理:让两个容器实现数据共享
1.创建一个数据卷容器,指定名字为web100,两个卷:/data1 和 /data2
docker run -it --name web100 -v /data1 -v /data2 centos:7 /bin/bash
2.另起一个终端,将这个数据卷容器挂载到centos:7的容器上
docker run -it --name db1 --volumes-from web100 centos:7 /bin/bash
#此时 ls / 查看就会发现有 /data1 和 /data2 两个目录
三、容器互联(使用centos镜像)
docker run -itd -P --name web1 centos:7 /bin/bash //创建并运行容器取名web1,端口号随机映射
docker exec -it 容器ID /bin/bash
#另起一个终端
docker run -itd -P --name web2 --link web1:web1 centos:7 /bin/bash //创建并运行容器取名web2,链接到web1和其通信
#--link:打通隧道
docker exec -it 容器ID /bin/bash
#两个容器都下载
yum -y install net-tools //各自下载ifconfig的工具
验证:
进web2容器 ping web1