Docker学习笔记3:-v 数据卷不生效问题解决

背景说明

数据卷的定义

数据卷(Data Volumes)是一个可以供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount行为

那数据卷有啥作用呢?

——其实就是将容器中的数据持久化到操作系统本地目录,也方便在操作系统修改容器相关配置等

docker目前提供了2种方式创建数据卷
1.-v 子命令,如下:

docker run -d --name centos0329 -v /home/host:/home/container centos

2.通过Dockerfile文件添加

这种方式我们后续在学习Dockerfile时再补充
问题起源

在利用Centos镜像测试可以实现主机到容器的数据共享及同步后,想试试其他镜像,如Nginx,Tomcat等
使用如下命令

docker run -d -p 8888:80 --name nginx0329 -v /home/docker/nginx/log:/var/log/nginx/ nginx:1.16.1

利用已经pull到本地的nginx:1.16.1创建一个nginx运行容器,将本地目录/home/docker/nginx/log 与容器的 /var/log/nginx 映射建立数据卷

结果很神奇,本地的目录随之创建了,但是文件并未同步过来,本地touch一个问津啊,容器内也为同步生成。

解决办法

加上--privileged=true选项
如下

docker run -d -p 8888:80 --name nginx0329 -v /home/docker/nginx/log:/var/log/nginx/ --privileged=true nginx:1.16.1

就可以了,而且注意,--privileged=true选项不要放在最后,跟在容器目录后才行。

注:--privileged=true最好紧跟 -v指令,要不然可能不起作用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 1,800评论 0 7
  • Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启...
    执笔梦一场阅读 3,306评论 2 10
  • 摘要:继续docker的学习之旅,今天练习一些常用的命令: 一、镜像相关 1.1 列出本机所有镜像 docker ...
    暖夏未眠丶阅读 769评论 0 0
  • 原文地址:LoveDev Docker相对于传统意义上的虚拟机最大的区别就在于传统虚拟机是虚拟出一套硬件后,再在上...
    KevinLive阅读 3,772评论 3 7
  • 历史的车轮向后 古老的智慧把往事擦亮 从鸭绿江到嘉峪关 万里长城像一条巨龙 从云雾里抬起头 青砖是鳞片 闪耀着民族...
    王二痞子阅读 719评论 15 24