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学习笔记3:-v 数据卷不生效问题解决)