当前位置: 首页 > news >正文

实战案例:容器数据卷四部曲(三)目录数据卷

文章目录

  • 一、在宿主机创建容器所使用的目录
  • 二 、查看容器相关目录
  • 三、引用宿主机的数据卷启动容器
  • 四、进入到容器内测试写入数据
  • 五、在宿主机修改数据
  • 六、只读方法挂载数据卷
  • 七、删除容器

一、在宿主机创建容器所使用的目录

root@ubuntu1804:~# mkdir /data/testdir
root@ubuntu1804:~# echo Test page on host > /data/testdir/index.html

二 、查看容器相关目录

root@ubuntu1804:~# docker images "*nginx*"
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx-ubuntu1804    1.20.2              244dd10f1b53        43 hours ago        402MB
nginx-ubuntu1804        1.20.2              99c6261cef9c        43 hours ago        213MBroot@ubuntu1804:~# docker run -it --rm nginx-ubuntu1804:1.20.2 bash
/ # cat /etc/nginx/conf/nginx.conf
...location / {root   /data/nginx/html;index  index.html index.htm;}
...
/ # cat /data/nginx/html/index.html
Test Page nginx-ubuntu1804
/ # exit
root@ubuntu1804:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

三、引用宿主机的数据卷启动容器

root@ubuntu1804:~# docker run -d -v /data/testdir:/data/nginx/html/ -p 8001:80 nginx-ubuntu1804:1.20.2
b9aae84935d6b1658440bd5277ec77432e6b8528cb79686596eda236b9c53367
root@ubuntu1804:~# docker run -d -v /data/testdir:/data/nginx/html/ -p 8002:80 nginx-ubuntu1804:1.20.2
10c1921c544c49c6f1f16c7886aadf305935a740d892ccc942e6012c43c2a07b
root@ubuntu1804:~# docker ps
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS              PORTS                           NAMES
10c1921c544c        nginx-ubuntu1804:1.20.2   "nginx"             2 seconds ago       Up 1 second         443/tcp, 0.0.0.0:8002->80/tcp   modest_mclaren
b9aae84935d6        nginx-ubuntu1804:1.20.2   "nginx"             6 seconds ago       Up 6 seconds        443/tcp, 0.0.0.0:8001->80/tcp   gifted_haslettroot@ubuntu1804:~# curl  127.0.0.1:8001
Test page on host
root@ubuntu1804:~# curl  127.0.0.1:8002
Test page on host

四、进入到容器内测试写入数据

进入其中一个容器写书数据,其他容器的数据也变化

root@ubuntu1804:~# docker exec -it 3eeb3460e7eb bash
root@3eeb3460e7eb:/# cat /data/nginx/html/index.html
Test page on host
root@3eeb3460e7eb:/# echo Test page v2 on host > /data/nginx/html/index.html
root@3eeb3460e7eb:/# cat /data/nginx/html/index.html
Test page v2 on host# 进入另一个容器看到数据变化
root@ubuntu1804:~# docker exec -it b3382aba0c05 bash
root@b3382aba0c05:/# cat /data/nginx/html/index.html
Test page v2 on host# 访问应用
root@ubuntu1804:~# curl  127.0.0.1:8001
Test page v2 on host
root@ubuntu1804:~# curl  127.0.0.1:8002
Test page v2 on host

五、在宿主机修改数据

root@ubuntu1804:~# echo Test page v3 on host > /data/testdir/index.html
root@ubuntu1804:~# curl  127.0.0.1:8001
Test page v3 on host
root@ubuntu1804:~# curl  127.0.0.1:8002
Test page v3 on hostroot@ubuntu1804:~# docker exec -it 3eeb3460e7eb bash
root@3eeb3460e7eb:/# cat /data/nginx/html/index.html
Test page v3 on hostroot@ubuntu1804:~# docker exec -it b3382aba0c05 bash
root@b3382aba0c05:/# cat /data/nginx/html/index.html
Test page v3 on host

六、只读方法挂载数据卷

默认数据卷为可读可写,加ro选项,可以实现只读挂载,对于不希望容器修改的数据,比如:配置文件,脚本等,可以用此方式甜挂载

docker run -d -v /data/testdir:/data/nginx/html/:ro -p 8003:80 nginx-ubuntu1804:1.20.2
6239e42d735b75c4f2d8aaafdf7b57de466a2d2842fa3e25750979dcd7b49a1droot@ubuntu1804:~# docker exec -it 6239e42d735b bash
root@6239e42d735b:/# cat /data/nginx/html/index.html
Test page v3 on host
root@6239e42d735b:/# echo Test page v4 on host > /data/nginx/html/index.html
bash: /data/nginx/html/index.html: Read-only file system

七、删除容器

root@ubuntu1804:~# docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED              STATUS              PORTS                           NAMES
6239e42d735b        nginx-ubuntu1804:1.20.2   "nginx"             About a minute ago   Up About a minute   443/tcp, 0.0.0.0:8003->80/tcp   quirky_knuth
3eeb3460e7eb        nginx-ubuntu1804:1.20.2   "nginx"             10 minutes ago       Up 10 minutes       443/tcp, 0.0.0.0:8002->80/tcp   angry_davinci
b3382aba0c05        nginx-ubuntu1804:1.20.2   "nginx"             10 minutes ago       Up 10 minutes       443/tcp, 0.0.0.0:8001->80/tcp   dreamy_matsumoto
root@ubuntu1804:~# docker rm -f `docker ps -aq`
6239e42d735b
3eeb3460e7eb
b3382aba0c05
root@ubuntu1804:~# cat /data/testdir/index.html
Test page v3 on host# 新建的容器还可以继续使用原有的数据卷
root@ubuntu1804:~# docker run -d -v /data/testdir:/data/nginx/html/ -p 8004:80 nginx-ubuntu1804:1.20.2
3b0bfc442cd89d890e748b1afad19c2f71bb36b51a3d394ff1e9a9d1a8b3c41f
root@ubuntu1804:~# curl 127.0.0.1:8004
Test page v3 on host
http://www.dtcms.com/a/313258.html

相关文章:

  • DDR SDRAM中的DQS与DQ信号
  • 【网络安全】日志文件格式
  • 数据结构——单向链表
  • Kali基础知识点【1】
  • Pytorch-04 搭建神经网络架构工作流
  • TikTokShop-美国本土跨境-达人邀约_影刀RPA源码解读
  • 8.1.3 TiDB集群方案雨Replication原理
  • 关于逻辑回归的相关知识大全
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘scikit-learn’问题
  • 【AI】持久化聊天记忆(隔离对话)
  • ELECTRICAL靶机攻略
  • Linux驱动学习(四)字符设备
  • PyTorch生成式人工智能(24)——使用PyTorch构建Transformer模型
  • HBK公司核心产品和业务简析
  • 架构——异地多活成熟的架构模式
  • useSelector useDispatch
  • 高级开发 | 零人工干预的 @Value 实时刷新
  • 直流无刷电机(一)
  • ElementUI之使用以及表单验证
  • lumerical——锥形波导偏振转换
  • 第九章:了解特殊场景下的redis
  • 解决dify前端页面中公式显示的问题
  • 字典序最小的拼接字符串(贪心+全排列)详解
  • 数据分析—numpy库
  • Pytorch-03数据的Transform
  • 2106. 摘水果,梳理思路
  • 新手向:Python制作贪吃蛇游戏(Pygame)
  • Redis面试精讲 Day 9:Redis模块开发与扩展
  • 信创数据库-DM(达梦)数据库安装教程
  • Rust:如何访问 *.ini 配置文件?