容器存储实验指南:volume与bindmount操作详解
需积分: 0 52 浏览量
更新于2024-08-05
收藏 273KB PDF 举报
本篇文档是关于HCIP-CloudComputing-ContainerV1.0实验指导手册,主要针对Docker容器存储进行深入实践。实验分为两部分,即volume和bindmount,旨在探讨容器与宿主机之间的数据共享。
1.1 容器存储
1.1.1 volume
在这个环节,首先通过以下步骤创建一个名为`httpd`的容器并挂载一个名为`/usr/local/apache2/htdocs`的volume:
- 步骤1: 使用`docker run`命令创建容器,并指定端口8080对外暴露,同时挂载host的目录到容器的web目录:
```
docker run -d --name httpd -p 8080:80 -v /usr/local/apache2/htdocs:/usr/local/apache2/htdocs httpd
```
- 步骤2: 使用`docker volume ls`检查已有的volumes。
- 步骤3: 通过`docker inspect`获取容器详情,可以看到volume挂载信息及对应的volume路径。
- 步骤4: 在宿主机上通过HTTP访问`http://127.0.0.1:8080`验证数据同步。
- 步骤5: 更新容器内的`index.html`文件内容,验证数据同步:`echo "update the index" > index.html`
- 步骤6: 再次访问container的web服务,确认数据更新同步到volume。
- 步骤7: 强制删除容器后,数据仍在volume中,证明数据持久化。
1.1.2 bindmount
接下来,通过bindmount实现更精细的数据共享:
- 步骤1: 创建一个只读的bindmount,将`/root/htdocs`目录挂载到名为`httpd1`的容器的web目录:
```
docker run --name httpd1 -d -p 8081:80 -v /root/htdocs:/usr/local/apache2/htdocs:ro httpd
```
- 步骤2: 检查容器挂载信息,确认Type为bind。
- 步骤3: 修改宿主机上的`/root/htdocs/index.html`文件,容器内的数据会同步更新,因为是只读挂载。
- 步骤4: 尝试在容器内更新`index.html`,会收到read-only的提示,因为挂载是只读的。
通过这些实验,学习者能够理解Docker的volume和bindmount功能在容器数据共享中的作用,以及它们的权限控制机制。volume提供持久化的存储,而bindmount则提供了更灵活的文件系统级别共享,但需要注意数据写入的限制。通过这两个方法,容器可以在宿主机之间或与外部服务进行数据交换,实现应用和服务的隔离与可移植性。
2022-08-03 上传
2021-01-28 上传
2022-08-03 上传
2022-08-03 上传
2022-08-03 上传
2022-08-03 上传
2022-08-08 上传
2022-08-03 上传
2022-08-03 上传
周林深
- 粉丝: 56
- 资源: 290
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章