• docker的挂载目录机制总结


    经过测试,使用docker的目录挂载,有以下规律,以nginx容器做测试

    规律

    1、若宿主机和默认容器都不存在目录,则会创建所写的对应目录

    命令:docker run --name mynginx5 -p 101:80  -v /data/nginx:/etc/nginx1 -d  nginx:latest

    容器:

    宿主机:

     2、若宿主机存在目录,且里面有文件,而容器没有目录,则会将宿主机的目录同步映射到容器

    命令:docker run --name mynginx5 -p 101:80  -v /data/nginx:/etc/nginx1 -d  nginx:latest

    容器:

     宿主机:

     3、若容器有目录,且有文件,宿主机有目录,没有文件。  会将目录覆盖,以宿主目录为主,挂载后的容器目录为空。因为宿主机的目录为空

    命令:docker run --name mynginx777 -p 100:80  -v /data/nginx/html:/usr/share/nginx/html -d  nginx:latest

    正常容器的目录下有页面:

     但是目录被宿主机覆盖:

     宿主机:

     可以运行成功:

    访问页面:

    总结

      docker的容器挂载机制,总的来说就是,没有目录就创建,以宿主机的文件目录为主,直接覆盖容器的目录(就是将目录复制到容器,包括目录所有文件)

    注意事项

      在进行容器目录挂载的时候,若要设置配置文件的挂载,只需要挂载相对应的配置文件,且宿主机的配置文件需要有默认值;

    在容器启动时,会使用挂载的配置文件进行初始化,若文件找不到或为空,会导致启动失败。若挂载整个配置文件的目录,会将容器默认的配置文件夹覆盖

    从而导致启动失败,因此只需要将要修改的配置文件进行挂载映射即可。

  • 相关阅读:
    ubuntu18.04英文环境解决各种软件中文乱码问题
    Centos6两个镜像文件的合并方法
    将centos的yum源修改为阿里云的yum源
    Linux TOP 命令总结
    Nginx add SSL 证书 基础配置
    Nginx Http 核心模块中Server Location 配置
    df -h执行卡住不动问题解决
    Jetty Session Persistence By Redis
    Spring @Transactional配置知识梳理
    通用FTP Client模块设计与实现
  • 原文地址:https://www.cnblogs.com/zhukaile/p/15865894.html
Copyright © 2020-2023  润新知