『中级篇』数据持久化之bind Mounting(35)

本文详细介绍了如何在Docker中实现数据持久化,通过具体的示例演示了使用bind mounting和volume的不同方式,并探讨了它们对容器移植性的影响。

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:『中级篇』数据持久化之bind Mounting(35)

回忆上次的volume的方式,源码github.com/limingios/d… No.3 方便学习数据持久化存储

  1. Dockerfile中
    VOLUME ["/var/lib/mysql"]
  2. 别名:持久化地址的方式
    docker run -v mysql:/var/lib/mysql
Bind Mouting
  • 代码
docker run -v /home/aaa:/root/aaa
复制代码
  • 例子
cd ~
cd labs/docker-nginx/
more Dockerfile
复制代码

sudo service docker restart
docker build -t liming/nginx .
sudo docker image ls
复制代码


  • 容器生成不适用数据持久化
sudo docker run -d -p 80:80 --name web liming/nginx
curl 127.0.0.1
ip a
复制代码



  • 容器生成使用数据持久化
#删除原来的容器
sudo docker rm -f web
#容器内的80对外部的80,pwd对应/usr/share/nginx/html的
sudo docker run -d -p 80:80 -v $(pwd):/usr/share/nginx/html --name web liming/nginx  
curl 127.0.0.1
sudo docker exec -it web /bin/sh
cd /usr/share/nginx/html
#在数据持久化目录里面增加文件aaa.test
touch aaa.test
exit
复制代码

cd ~/labs/docker-nginx/
#查看路径已经多了一个文件aaa.test
ls
#修改aaa.test文件内容
vim aaa.test
sudo docker exec -it web /bin/sh
复制代码



sudo docker exec -it web /bin/sh
#容器内可以看到数据持久化的信息
more  aaa.test
复制代码

个人主页:IT人故事会

PS:bind mount 需要指定 host 文件系统的特定路径,这就限制了容器的可移植性,当需要将容器迁移到其他 host,而该 host 没有要 mount 的数据或者数据不在相同的路径时,操作会失败。但是我感觉已经很方便了。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值