zoukankan      html  css  js  c++  java
  • docker容器目录挂载

    简介

    我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以实现宿主机和容器目录的双向数据自动同步

    作用

    我们cp命令来实现数据传递,这种方式比较麻烦;

    我们通过容器目录挂载,能够轻松实现代码上传,配置修改,日志同步等需求

    命令格式

    单目录挂载

    docker run -it -v /宿主机目录:/容器目录 镜像名
    

    多目录挂载

    docker run -it -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名
    

    只读目录挂载

    docker run -it -v  /宿主机目录:/容器目录:ro 镜像名
    

    关于挂载的本地目录在容器中没有执行权限的问题

    注意

    如果你同步的是多级目录,可能会出现权限不足的提示;

    这是因为Centos7中的安全模块selinux把权限禁掉了,我们需要添加 --privileged=true 来解决挂载的目录没有权限的问题;

    例:

    docker run -it --privileged=true -v /home/soft/:/usr/soft:rw centos /bin/bash
    

    例:单目录挂载

    先在宿主机建一个目录,并创建一个文件,如:

    在home下建了一个host_data,里面有a.txt文件

    image-20210106142613054

    运行容器并挂载目录

    docker run -it -v /home/host_data/:/home/client_data/ 8652b9f0cb4c
    

    该容器挂载目录为/home/client_data/

    该文件同步出现

    image-20210106143153095

    这时候如果修改该文件,宿主机文件会同步修改,如修改

    image-20210106143307898

    保存退出

    image-20210106143404815

    同步修改了,这就是双向数据同步,任何一方修改了另外一方都会跟着改动

    多目录同理

    例:只读目录挂载

    一般用在配置文件,容器内不让其修改的情况

    例:

     docker run -it -v /home/host_data/:/home/client_data/:ro 8652b9f0cb4c
    

    进入该目录进行编辑,会如图所示

    image-20210106144610468

    不能编辑,但是宿主机可以编辑

  • 相关阅读:
    python 之字符编码
    python文件处理
    迭代器和生成器
    内置函数和匿名函数
    函数之递归
    函数 之装饰器
    python 函数进阶与闭包
    python 之 函数
    python之运算符
    python字符串内置方法
  • 原文地址:https://www.cnblogs.com/makalochen/p/14241052.html
Copyright © 2011-2022 走看看