侧边栏壁纸
博主头像
小周的个人博客 博主等级

行动起来,活在当下

  • 累计撰写 35 篇文章
  • 累计创建 9 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Docker的数据卷

Administrator
2026-05-11 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

1 数据卷概述

容器数据卷可以是宿主机中的一个目录或文件,通过将目录或文件挂载到容器中,可解决容器中的数据与宿主机之间立刻同步

数据卷可以间接的将外部主机文件传输到宿主机数据卷目录,可解决容器与外部主机之间文件交换的问题

一个数据卷目录可以同时挂载多个容器,解决多容器之间文件交换的问题

数据卷可以解决容器删除后容器数据丢失的问题,实现数据持久化

2 配置容器数据卷

配置方式

  • 在创建启动容器时,使用-v参数设置数据卷

  • docker run 参数 -v 宿主机目录/文件:容器内目录/文件...

注意事项

  • 目录必须是绝对路径

  • 如果目录不存在,会自动创建

  1. 创建容器并挂载数据卷

    [root@localhost ~]# docker run -d --name=ngx_v2 -p 88:80 \
    > -v /root/turntable_lottery-master/:/usr/share/nginx/html \
    > nginx:1.20.2

  2. 进入容器查看数据卷目录

    [root@localhost ~]# docker exec -it ngx_v2 /bin/bash
    root@0ae746c3c444:/# ls /usr/share/nginx/html/
    README.md  common  css  image  index.html  js

访问测试:http://192.168.0.10:88/

  1. 验证数据同步:在宿主机数据卷目录修改index.html文件验证数据同步

    [root@localhost turntable_lottery-master]# vim index.html 

    刷新页面:http://192.168.0.10:88/

  1. 验证数据同步:在容器的数据卷目录创建文件验证数据同步

    root@de91cd23b075:/usr/share/nginx/html# echo "<marquee><font color=red><h1>Hello<marquee>" > test.html 

容器数据卷可以是宿主机中的一个目录或文件,通过将目录或文件挂载到容器中,可解决容器中的数据与宿主机之间立刻同步。

  1. 退出并删除容器

[root@localhost ~]# docker stop ngx_v2
[root@localhost ~]# docker rm ngx_v2

  1. 宿主机验证数据卷目录数据是否存在

[root@localhost ~]# ls turntable_lottery-master/
common  css  image  index.html  js  README.md  test.html

  1. 重新创建容器,并将数据卷目录同步到容器中

[root@localhost ~]# docker run -d --name=ngx_v2 -p 88:80 \
> -v /root/turntable_lottery-master/:/usr/share/nginx/html \
> nginx:1.20.2

数据卷可以解决容器删除后容器数据丢失的问题,实现数据持久化。

提示:一个容器可以同时挂载多个数据卷目录。

访问测试:http://192.168.0.10:88/

3 多容器挂载同一个数据卷

一个数据卷目录可以同时挂载多个容器,解决多容器之间文件交换的问题。

  1. 创建容器并挂载同一个数据卷

    [root@localhost ~]# docker run -d --name=ngx_v3 -p 89:80 \
    > -v /root/turntable_lottery-master/:/usr/share/nginx/html \
    > nginx:1.20.2

  2. 进入ngx_v3容器数据卷目录创建文件

    [root@localhost ~]# docker exec -it ngx_v3 /bin/bash
    root@718022ca4162:/# cd /usr/share/nginx/html/
    ​
    root@718022ca4162:/usr/share/nginx/html# echo "<marquee><font color=red><h1>ngx_v3<marquee>" > ngx_v3.html

    访问ngx_v3容器端口:http://192.168.0.10:89/ngx_v3.html

    访问ngx_v2容器端口:http://192.168.0.10:88/ngx_v3.html

小结:通过访问不同的容器可以发现,一个数据卷目录可以同时被多个容器挂载,解决多容器之间文件交换的问题。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区