Docker数据卷volume(四)

目录

1.1.docker挂载宿主机数据卷

1.2.案例:多端口的nginx容器配置

1.3.docker持久化数据卷组

1.4.查看数据卷组详细信息

1.5.与某个容器使用相同的数据卷组


1.1.docker挂载宿主机数据卷

一般来说nginx只有默认首页,我们装了nginx肯定不只有首页,因此网站源码存放位置我们需要考虑了,放到容器中,很多命令在容器中不生效这点就很头疼,因此就有了挂载这么个说法,在宿主机建一个目录,挂载到容器中,宿主机发生改变,容器也会跟着改变,实时同步

语法格式:

​ docker run -d -p 宿主机端口:docker端口 -v src:dest 镜像

​ 参数:

​ 可以是文件也可以是目录

具体配置

  1. 1)建立web站点目录
  2. [root@docker01 ~]# mkdir /web
  3. 2)准备源码
  4. [root@docker01 web]# cp /root/know_system.tar.gz
  5. [root@docker01 web]# tar xf know_system.tar.gz
  6. [root@docker01 ~]# ls /web/know_system
  7. 3)挂载
  8. [root@docker01 ~]# docker run -d -p 82:80 -v /web/know_system:/usr/share/nginx/html --name know2_nginx nginx
  9. 7454e27f2a5331c90fb6ef1ea7c29c8f4cc80a842a487d3a577aa961bf7d24cf
  10. [root@docker01 ~]# docker exec -it know2_nginx /bin/bash
  11. root@7454e27f2a53:/# ls /usr/share/nginx/html/
  12. 'cisco+H3C data' index.html 'linux-'$'\346\226\207\346\241\243'
  13. cisco-file 'key points of eth first phase' 'linux-'$'\347\254\224\350\256\260\345\244\247\345\205\250'
  14. 'cisco-'$'\347\254\224\350\256\260' linux-data linuxfile
  15. data linux-image 'login-'$'\345\244\207\347\224\250''.html'
  16. image 'linux-'$'\346\226\207\346\234\254' login.html

在这里插入图片描述

1.2.案例:多端口的nginx容器配置

当访问容器的80端口出现默认首页,访问81端口出现know的页面

实现思路:将配置文件也以挂载的方式去实现,web站点也以挂载方式实现

  1. 1.创建配置文件目录
  2. [root@docker01 ~]# mkdir /web/conf.d
  3. [root@docker01 conf.d]# cat know.conf
  4. server {
  5. listen 81;
  6. server_name know.com;
  7. location / {
  8. root /usr/share/nginx/html;
  9. index index.html;
  10. }
  11. }
  12. 2.创建站点目录
  13. [root@docker01 ~]# mkdir /web/know_system/
  14. 3.运行容器并挂载数据卷
  15. docker run命令可以多次调用相同的参数
  16. [root@docker01 ~]# docker run -d -p 80:80 -p 81:81 -v /web/conf.d/:/etc/nginx/conf.d -v /web/know_system:/usr/share/nginx/html nginx:latest
  17. 7584cf390f6a5127bbd3ce19e03b7acc9b47da7c1e3c93e267071589eb97dcab
  18. 4.进入容器查看是否有文件
  19. [root@docker01 conf.d]# docker exec -it festive_bohr /bin/bash
  20. root@7584cf390f6a:/# ls etc/nginx/conf.d/
  21. know.conf
  22. root@7584cf390f6a:/# ls /usr/share/nginx/html/
  23. 5.访问
  24. 6.需要修改配置只需要在本地的/web/conf.d目录编写配置文件即可,写完后用docker restart重启即可
  25. [root@docker01 conf.d]# vim know.conf
  26. [root@docker01 conf.d]# docker restart festive_bohr

1.3.docker持久化数据卷组

每当容器删除时,里面的数据也会随着删除,当运维人员不小心删了一个容器时,那可就太悲催了,因此docker还有一种数据卷叫做持久性数据卷组,每次都会把容器中操作的数据保存在数据卷组中,即使删除了这个容器,创建新的容器照样可以使用数据卷组中的内容

语法格式:

docker volume 参数 数据卷组名称

参数列表:

参数含义
create创建一个数据卷
rm删除一个数据卷
prune批量删除多个数据卷
inspect查看卷组的属性
ls查看所有卷组
  1. 1.创建持久性数据卷组
  2. [root@docker01 conf.d]# docker volume create nginx_site
  3. nginx_site
  4. [root@docker01 conf.d]# docker volume ls
  5. DRIVER VOLUME NAME
  6. local nginx_site
  7. 2.使用数据卷组
  8. [root@docker01 conf.d]# docker run -d -p 82:80 -v nginx_site:/usr/share/nginx/html nginx
  9. b6ee57e0ec7fd89368ab2269f799be898f73e0692c5113f40a924ce03362ba30
  10. 3.数据改动
  11. root@docker01 conf.d]# docker exec -it lucid_newton /bin/bash
  12. root@b6ee57e0ec7f:/# cd /usr/share/nginx/html/
  13. root@b6ee57e0ec7f:/usr/share/nginx/html# echo "hello volume" > index.html
  14. 4.访问页面
  15. [root@docker01 conf.d]# curl 127.0.0.1:82
  16. hello volume
  17. 5.删除容器
  18. [root@docker01 conf.d]# docker rm -f lucid_newton
  19. lucid_newton
  20. 6.重新创建一个容器并挂载数据卷组
  21. [root@docker01 conf.d]# docker run -d -p 83:80 -v nginx_site:/usr/share/nginx/html nginx
  22. aa9406ea69542486c6a3b7b6db74d53a92ba50fa15a5fea9c64b95d527c01b13
  23. 7.访问
  24. [root@docker01 conf.d]# curl 127.0.0.1:83
  25. hello volume
  26. 验证后发现数据完整的保留下来
1.4.查看数据卷组详细信息
  1. [root@docker01 conf.d]# docker volume inspect nginx_site
  2. [
  3. {
  4. "CreatedAt": "2020-06-21T23:27:59+08:00",
  5. "Driver": "local",
  6. "Labels": {},
  7. "Mountpoint": "/var/lib/docker/volumes/nginx_site/_data", //卷组数据存放位置
  8. "Name": "nginx_site",
  9. "Options": {},
  10. "Scope": "local"
  11. }
  12. ]
  13. [root@docker01 conf.d]# ls /var/lib/docker/volumes/nginx_site/_data
  14. 50x.html index.html
1.5.与某个容器使用相同的数据卷组

语法格式:

docker run -d -p srcport:destport --volumes-from 要和谁使用相同的数据卷的容器名 镜像名

  1. [root@docker01 conf.d]# docker run -d -p 85:80 --volumes-from blissful_blackburn nginx
  2. de40b06d4775c43a15d94cbc1f3035fac28de18d3c2c5b52d92bb74a958a7922
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

举报

选择你想要举报的内容(必选)
  • 内容涉黄
  • 政治相关
  • 内容抄袭
  • 涉嫌广告
  • 内容侵权
  • 侮辱谩骂
  • 样式问题
  • 其他
点击体验
DeepSeekR1满血版
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回顶部