容器管理之---数据管理

前面学习了镜像的管理、容器的管理,今天学习数据的管理,毕竟一个服务或一个程序的发布是离不开数据的,数据才是企业的核心。

# 一、数据的存放形式
我们在部署容器的时候往往将数据是存放宿主机目录的,你想如果把数据存放容器上,一不小心删除了容器,就哭瞎眼了;而且放宿主机更便于维护和管理。将数据从宿主机挂载到容器中的三种方式:
1、 Volume:Docker会管理宿主机文件系统的一部分(/var/lib/docker/volumes),保存数据的最佳方式。

2、Bind Mounts:将宿主机上的任意位置的文件或目录挂载到容器中,说白了就是将宿主机的目录映射到容器的目录。

3、 tmpfs:挂载存储在主机系统的内存中,而不会写入主机的文件系统。如果不希望将数据持久存储在何人位置,可以使用tmpfs,同时避免写入容器可写层提高性能(此方法基本不用考虑)。

# volume:
# 管理数据卷:
#docker volume create nginx-vol 创建数据卷
#docker volume ls 查看数据卷
#docker volume inspect nginx-vol 查看数据卷详细信息
# 用已有卷创建一个容器:
#docker run -d --name=nginx-test --mount src=nginx-vol,dst=/usr/share/nginx/html nginx
#docker run -d --name=nginx-test -v nginx-vol:/usr/share/nginx/html nginx
解释:--name=nginx-test ,给容器起名字
--mount 挂载数据卷,docker-ce版本新增的参数
src=nginx-vol 宿主机的数据卷
dst=/** 容器对应的路径
-v 是旧版本中宿主机和容器目录映射的参数
# 清理:**
#docker stop nginx-test
#docker rm nginx-test
#docker volume rm nginx-vol
注意:
1、如果没有指定卷,自动创建
2、建议使用--mount, 更通用。

# Bind Mounts
用卷创建一个容器:
#docker run -d --name=nginx-test --mount type=bind,src=/app/wwwroot,dst=/usr/share/nginx/html nginx
#docker run -d --name=nginx-test -v /app/wwwroot:/usr/share/nginx/html nginx
验证绑定:
#docker inspect nginx-test
清理:
#docker stop nginx-test
#docker rm nginx-test
注意:
1、如果源文件/目录没有存在,创建容器时报错
2、如果挂载目标在容器中非空目录,则该目录现有容器将被隐藏
3、不会自动创建,会抛出一个错误。

小结

Volume特点:
多个运行容器之间共享数据,多个容器可以同时挂载相同的卷。
当容器停止或被移除时,该卷依然存在。
当明确删除卷时,卷才会被删除。
将容器的数据存储咋i远程主机或其他存储上。
将数据从一台docker主机迁移到另一台时,先停止容器,然后容器备份卷的目录(/var/lib/docker/volumes)
Bind Mount特点:
从主机共享配置文件到容器。默认情况下,挂载主机/etc/resolv.conf到每个容器,提供DNS解析。
在docker主机上的开发环境和容器之间共享源代码。例如,可以将Maven target目录挂载到容器中,每次在docker主机上构建Maven项目时,容器都可以访问构建的项目包。
当docker主机的文件或目录机构保证与容器所需的绑定挂载一致时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值