首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
1
『中级篇』overlay网络和etcd实现多机的容器通信(31)
2
『中级篇』docker的数据持久化存储和数据共享(32)
3
『中级篇』docker的数据持久化存储和数据共享(33)
4
『中级篇』数据持久化之Data Volume(34)
5
『中级篇』数据持久化之bind Mounting(35)
6
『中级篇』docker 使用bind Mounting实战(36)
7
『中级篇』docker容器安装wordpress(37)
8
『中级篇』Docker Compose到底是什么(38)
9
『中级篇』Docker Compose的安装和基本使用(39)
10
『中级篇』Docker 水平扩展和负载均衡(40)
11
『中级篇』Docker compose 部署一个复杂的应用(41)
12
『中级篇』容器编排Docker Swarm介绍(42)
13
『中级篇』docker-swarm创建一个多节点集群(43)
14
『中级篇』play with docker 的使用(44)
15
『中级篇』docker-swarm中的Service创建维护和水平扩展(45)
16
『中级篇』在docker-swarm集群里通过serivce部署wordpress(46)
17
『中级篇』集群服务间通信之RoutingMesh(47)
18
『中级篇』RoutingMesh之Ingress负载均衡(48)
19
『中级篇』Docker-Stack部署wordpress(49)
20
『中级篇』Docker-Stack部署投票应用(50)
21
『中级篇』Docker-Secret管理和使用(51)
22
『中级篇』Docker service更新(52)
23
『中级篇』Docker的收费模式(53)
24
『中级篇』Docker-cloud介绍(54)
25
『中级篇』Docker Cloud自动构建 Docker image(55)
26
『中级篇』Docker企业版的在线免费体验(56)
27
『中级篇』docker企业版本地安装之UCP(57)
28
『中级篇』Kubenetes简介(60)

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

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

  1. Dockerfile中 VOLUME ["/var/lib/mysql"]
  2. 别名:持久化地址的方式 docker run -v mysql:/var/lib/mysql
Bind Mouting
  • 代码
代码语言:javascript
复制
docker run -v /home/aaa:/root/aaa
  • 例子
代码语言:javascript
复制
cd ~
cd labs/docker-nginx/
more Dockerfile
代码语言:javascript
复制
sudo service docker restart
docker build -t liming/nginx .
sudo docker image ls
  • 容器生成不适用数据持久化
代码语言:javascript
复制
sudo docker run -d -p 80:80 --name web liming/nginx
curl 127.0.0.1
ip a
  • 容器生成使用数据持久化
代码语言:javascript
复制
#删除原来的容器
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
代码语言:javascript
复制
cd ~/labs/docker-nginx/
#查看路径已经多了一个文件aaa.test
ls
#修改aaa.test文件内容
vim aaa.test
sudo docker exec -it web /bin/sh
代码语言:javascript
复制
sudo docker exec -it web /bin/sh
#容器内可以看到数据持久化的信息
more  aaa.test

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


下一篇
举报
领券