docker_数据卷+端口

本文探讨了容器内的数据管理策略,包括数据卷和数据卷容器的使用,以及如何通过端口映射和容器互联机制实现容器间的高效数据共享与访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

容器管理数据两种方式

  • 数据卷:容器内数据直接映射到本地主机
  • 数据卷容器:使用特定容器维护数据卷
数据卷特性

将主机目录直接映射进容器

  • 数据卷可以在容器间共享和重用
  • 对数据卷内数据修改立马生效,无论容器内操作or本地操作
  • 对数据卷更新不影响镜像,解耦开应用和数据
  • 卷会一直存在,直到没有容器使用,可以安全卸载

volume子命令
run 的–mount选项

数据卷容器

背景:多个容器间共享一些持续更新的数据 使用数据卷容器

# 先创建个数据卷容器dbdata,并建个数据卷挂载到/dbdata
docker run -it -v /dbdata --name dbdata ubuntu
# 其他容器中使用--volumes-from来挂载dbdata容器中的数据卷
docker run -it --volume-from dbdata --name db1 ubuntu
docker run -it --volume-from dbdata --name db2 ubuntu

可从多个容器挂载多个数据卷,还可以从已经挂载了容器卷的容器来挂载数据卷

迁移数据

备份
使用如下命令备份dbdata数据卷

恢复


端口映射与容器互联

端口映射实现容器访问

从外部访问容器应用

-P # 随机选个端口映射49000~49900
-p 则可以指定映射端口,一个指定端口绑定一个容器支持格式
IP:PORT:ContainerPort 或 IP::ContainerPort 或 hostport:ContainerPort

例子

docker run -p 4000:5000 training/webapp python app.py
# 可以使用udp标记指定udp端口
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
# 查看端口映射
docker port image_name 5000

互联机制实现便捷互访

接收容器通过容器名快速访问到源容器,不用指定具体ip

容器互联

使用–link参数

docker run -d -P --name web --link db:db training/webapp python app.py # --link name:alias name为要链接的容器的名称

docker通过两种方式为容器公开连接信息:
更新环境变量:env命令
更新/etc/hosts文件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值