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

作者: walker86 | 来源:发表于2020-03-29 23:02 被阅读0次

    背景说明

    数据卷的定义

    数据卷(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 数据卷不生效问题解决

        本文链接:https://www.haomeiwen.com/subject/mvppuhtx.html