当前位置: 首页 > 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.lryc.cn/news/608908.html

相关文章:

  • 【C++】面向对象编程:继承与多态的魅力
  • 对大脑功能连接进行功能注释
  • git配置公钥/密钥
  • FasrCGI
  • 【ROS2】常用命令
  • Python中的import和from...import有什么区别?
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十六天
  • FFT/STFT/小波/HHT:振动诊断工具生死局,选错=灾难
  • 构造类型--结构体,共同体联合体,枚举
  • 多模态大模型综述:BLIP-2详解(第二篇)
  • jconsole与jvisualvm监控
  • Python 动态属性和特性(特性全解析)
  • 前端 拼多多4399笔试题目
  • RabbitMQ面试精讲 Day 8:死信队列与延迟队列实现
  • 数据分析—numpy库
  • JS逆向 - (国外)川航 - Reese84(cookie)
  • Mongo索引
  • git相关配置问题汇总
  • Linux 文件与目录操作详解
  • 从Docker衔接到导入黑马商城以及前端登录显示用户或密码错误的相关总结(个人理解,仅供参考)
  • PyTorch生成式人工智能(24)——使用PyTorch构建Transformer模型
  • accept4系统调用及示例
  • ABP VNext + CloudEvents:事件驱动微服务互操作性
  • 数据治理:DQC(Data Quality Center,数据质量中心)概述
  • [每周一更]-(第153期):**PDF终极防护指南:命令行全栈加密+一键权限锁死实战(附脚本模板)**
  • Docker--解决x509: certificate signed by unknown authority
  • 医院课题管理全动态流程 (AI-Enhanced, Data-Driven Research Lifecycle)
  • JAVA中的String类方法介绍
  • 基于transformer的目标检测——匈牙利匹配算法
  • 【Excel】利用函数和Power Query进行数据分析