专做酒的小程序网站,html门户网站模板,成都网站开发哪家公司好,手机app软件制作平台目录
一、数据卷#xff08;Data Volumes#xff09;
1、概述
2、原理
3、作用
4、示例#xff1a;宿主机目录 /var/test 挂载同步到容器中的 /data1
二、数据卷容器#xff08;DataVolumes Containers#xff09;
1、概述
2、作用
3、示例#xff1a;创建并使用…目录
一、数据卷Data Volumes
1、概述
2、原理
3、作用
4、示例宿主机目录 /var/test 挂载同步到容器中的 /data1
二、数据卷容器DataVolumes Containers
1、概述
2、作用
3、示例创建并使用数据卷容器
三、容器互联--link 管理 Docker 容器中数据主要有两种方式数据卷Data Volumes和数据卷容器DataVolumes Containers。
在生成容器的同时加上 -v 选项指定把当前服务器的目录映射到容器中实现docker持久化
一、数据卷Data Volumes
1、概述
数据卷是一个供容器使用的特殊目录位于容器中。可将宿主机的目录挂载到数据卷上对数据卷的修改操作立刻可见并且更新数据不会影响镜像从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于 Linux 下对目录进行的 mount 操作。
2、原理
将容器内部的配置文件目录挂载到宿主机指定目录下
数据卷默认会一直存在即使容器被删除。
宿主机和容器是两个不同的名称空间如果想进行连接需要用sshexec和attch也类似于ssh这种方式登录。
在企业中ssh这种登陆方式会比较危险安全漏洞很大尽量减少ssh这种杜绝了频繁使用exec。
因此使用数据卷的方式把容器内部的文件目录挂载到宿主机指定目录下进行修改当容器里的文件频繁需要修改时不需要登陆进去直接使用数据卷方式在宿主机指定的目录下进行修改即可方便又安全。
3、作用
Docker容器删除后在容器中产生的数据也会随之销毁所以使用数据卷避免这种情况。由Docker挂载到容器但不属于联合文件系统因此能够绕过Union File System联合文件系统提供一些用于持续存储或共享数据的特性。
4、示例宿主机目录 /var/test 挂载同步到容器中的 /data1
注意宿主机本地目录的路径必须是使用绝对路径。如果路径不存在Docker会自动创建相应的路径。
把宿主机挂载到容器内部
docker run -it --name num01 -v /var/test:/data1 centos:7 bash 另开一个终端在宿主机进行查看
cd /var/test ls 在容器中创建文件num01.txt
echo this is num01 file /data1/num01.txt 在宿主机查看是否有内容
cat /var/test/num01.txt 二、数据卷容器DataVolumes Containers
1、概述
数据卷容器是一个普通的容器专门提供数据卷给其他容器挂载使用。
2、作用
让两个容器实现数据共享。
如果需要在容器之间共享一些数据最简单的方法就是使用数据卷容器。
3、示例创建并使用数据卷容器
创建一个容器 rong01 作为数据卷容器并创建文件 1.txt 与 2.txt
#创建并进入容器
docker run -it --name rong1 -v /data1 -v /data2 centos:7 bash #容器内创建测试文件1、2
echo this is 1 file /data1/1.txt
echo THIS IS 2 FILE /data2/2.txt 使用 --volumes-from 挂载容器 rong02 中的数据卷到新的容器
#创建并进入容器
docker run -it --name rong2 --volumes-from rong1 centos:7 bash #查看测试数据是否同步
cat data1/1.txt
cat data2/2.txt三、容器互联--link
使用centos镜像容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。
简单点说就是会在源容器和接收容器之间建立一条隧道接收容器可以看到源容器指定的信息。
示例
1、创建并运行源容器取名web1
docker run -itd -P --name web1 centos:7 /bin/bash2、创建并运行接收容器取名web2
#使用--link选项指定连接容器以实现容器互联
docker run -itd -P --name web2 --link web1:web2 centos:7 /bin/bash3、进入web2容器验证
docker exec -it web2 bash
ping web1也可以直接取消后台-d 直接进入web2容器ping web1