docker的数据管理

x33g5p2x  于2022-01-13 转载在 Docker  
字(1.5k)|赞(0)|评价(0)|浏览(425)

一、如何管理docker容器中的数据

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

二、数据卷

2.1 原理

将容器内部的配置文件目录,挂载到宿主机指定目录下

  • 数据卷默认会一直存在,即使容器被删除
  • 宿主机和容器是两个不同的名称空间,如果想进行连接需要用ssh,exec和attch也类似于ssh这种方式登录
  • 在企业中ssh这种登陆方式会比较危险,安全漏洞很大,尽量减少ssh这种,杜绝了频繁使用exec
  • 因此使用数据卷的方式把容器内部的文件目录挂载到宿主机指定目录下进行修改,当容器里的文件频繁需要修改时不需要登陆进去,直接使用数据卷方式在宿主机指定的目录下进行修改即可。方便又安全

2.2作用

  1. 修改配置文件例如,nginx. conf /usr/local/nginx/ conf/nginx.conf —> /container_ nginx/ conf/nginx. conf
  2. 容器内部产生的日志,如何收集将容器内部存方日志文件的目录挂载到宿主机指定目录下/container_ nginx/ log/access_ 1og/access_ log
  3. 传入变量挂载到宿主机在宿主机上添加变量内容,将变量放入共享目录,在容器中/etc/profile 直接加载就可以
    export xxdir=/data/data1/xx.

2.3实操

需求:宿主机目录/var/www挂载到容器中的/data1

#注意:宿主机本地目录的路径必须是使用绝对路径。如果路径不存在,Docker会自动创建相应的路径。
#-v选项可以在容器内创建数据卷,是volume的缩写
docker run -it --name test01 -v /var/www:/data1 centos:7 bash
ls

#返回宿主机进行查看
cd /var/www/
ls

#在容器中创建文件
echo "this is test01 file" > /data1/test.txt

#在宿主机查看是否有内容
cat /var/www/test.txt

1.#把宿主机挂载到容器内部

2、#另外开一个终端在宿主机进行查看

3、#在容器中创建文件

4、#在宿主机查看是否有内容

三、数据卷容器

3.1原理

让两个容器实现数据共享

3.2作用

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

3.3实操

需求:创建数据卷容器

#创建一个容器作为数据卷容器
docker run -it --name test1 -v /data1 -v /data2 centos:7 bash	#创建并进入容器
echo "this is test02 file" > /data1/test.txt		  	#容器内创建测试文件1
echo "THIS IS TEST2 FILE" > /data2/TEST.txt					#容器内创建测试文件2

#使用--volumes-from来挂载test2容器中的数据卷到新的容器
docker run -it --name test2 --volumes-from test01 centos:7 bash	#创建并进入容器
cat data1/test.txt											#查看测试数据是否同步
cat data2/TEST.txt

1、创建一个容器作为数据卷容器并创建文件

2、#使用–volumes-from来挂载test2容器中的数据卷到新的容器

总结

如何实现docker持久化

在生成容器的同时,加上-v选项,指定把当前服务器的目录映射到容器中

相关文章