目录
1.宿主机和容器之间互传数据
1.将文件由宿主机导入进容器
容器centos_oyyy
centos
容器centos_oyyy
2.将文件由容器导出宿主机
3.在宿主机中对容器内部进行创建文件
centos中
[root@docker ~]# docker exec -it centos7_oyyy /bin/bash -c "mkdir oyyy"
容器内
[root@beb5a3594df9 /]# ls
anaconda-post.log boot dev home lib64 mnt oyyy root sbin sys usr
bin data etc lib media opt proc run srv tmp var
在根目录下会有oyyy这个目录
centos
容器centos_oyyy
2.数据卷
数据卷是一个提供容器使用的特殊目录,位于容器中,可以将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。类似于挂载mount
挂载的方式会使用一部分宿主机的资源,因此也会降低使用容器的资源
[root@docker ~]# docker run -it -v /abc/bcd/ooo:/yibo --name yibobo centos:7 /bin/bash
在容器中
宿主机中
宿主机中
在容器中
应用场景
原理:将容器内部的配置文件目录,挂载到宿主机指定目录下
作用:
-
①修改配置文件例如,nginx.conf /usr/local/nginx/conf/nginx.conf ——>/container_nginx/conf/nginx.conf
-
②容器内部产生的日志,如何收集将容器内部存方日志文件的目录挂载到宿主机指定目录下/container nginx/l1og/access log)access log
-
③传入变量挂载到宿主机在宿主机上添加变量内容,将变量放入共享目录,在容器中/etc/profile直接加载就可以
export xxdir=/data/datal/xx.
3.数据卷容器
在容器与容器之间共享数据的最简单的方法
数据卷容器就是一个普通的容器,专门提供数据卷给其他容器挂载使用
使用--volumes-from来挂载
创建数据卷容器
[root@docker ~]# docker run -it --name oyyy -v /data1 -v /data2 centos:7 /bin/bash
-v 在容器中创建数据卷
创建其他容器时使用--volume-from挂载数据卷容器中的数据卷
[root@docker ~]# docker run -it --name yibo --volumes-from oyyy centos:7 /bin/bash
在yibo容器中data1 data2目录下创建文件,oyyy容器中的对应目录下也能看到相应的文件
yibo容器
oyyy容器
oyyy容器
yibo容器
实现了数据共享