V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
IurNusRay
V2EX  ›  程序员

关于 Docker 目录挂载

  •  
  •   IurNusRay · 2021-05-11 10:34:02 +08:00 · 2121 次点击
    这是一个创建于 1304 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果项目需要在不同环境下部署,那么宿主机的项目文件路径也可能不同,用绝对路径的方式就不行了,但是相对路径貌似会在 /var/lib/docker/volumes 下面创建文件夹,是否可以将 docker-compose.yaml 所在的文件夹挂载到容器内呢?比如-v .:/project
    13 条回复    2021-05-11 12:54:05 +08:00
    qwerthhusn
        1
    qwerthhusn  
       2021-05-11 10:48:37 +08:00
    > 但是相对路径貌似会在 /var/lib/docker/volumes 下面创建文件夹
    这个不是相对路径,而是 docker 管理的 volume


    要想相对路径,就用./xxx:/xxx
    IurNusRay
        2
    IurNusRay  
    OP
       2021-05-11 11:10:23 +08:00
    @qwerthhusn 我试过了,提示是不行的:If you intended to pass a host directory, use absolute path
    albertni
        3
    albertni  
       2021-05-11 11:31:50 +08:00
    建议不同机器用不同的 env 文件
    anthoy
        4
    anthoy  
       2021-05-11 11:37:08 +08:00
    @IurNusRay 你是使用 docker run 的吧,-v 好像是不能使用相对路径,可以配置在 docker-compose.yml ,volumes:是支持相对路径的,docker-compose up
    qwerthhusn
        5
    qwerthhusn  
       2021-05-11 11:39:18 +08:00
    我记得好像可以吧,难道是 docker-compose 或者 docker 版本不同?
    不行的话用 env 文件,把相对路径的前半部分放到 env 里面,然后 yaml 里面引用一下就行了,即使环境变动改动也只需要改动一份 env 文件就行了
    noqwerty
        6
    noqwerty  
       2021-05-11 11:39:49 +08:00
    docker-compose 可以用 ${PWD}/project:/project
    saytesnake
        7
    saytesnake  
       2021-05-11 12:31:36 +08:00
    /var/lib/docker/volumes 不是所谓的相对路径,是默认路径吧?

    挂载的时候仅填写名称不带路径斜杠即是在那个目录里,如 project-a:/project
    stille
        8
    stille  
       2021-05-11 12:35:15 +08:00 via iPhone
    docker compose
    volumes:
    - ./abc:/xxx/xxx

    你的数据就在 compose 目录下的 abc 中
    stille
        9
    stille  
       2021-05-11 12:42:45 +08:00
    根据容器不同,有时你得先创建 abc ,在 docker-compose up -d 启动..
    IurNusRay
        10
    IurNusRay  
    OP
       2021-05-11 12:50:42 +08:00
    @anthoy 是的,run 的确是不行,刚刚试了 docker-compose 可以,谢谢啦
    IurNusRay
        11
    IurNusRay  
    OP
       2021-05-11 12:51:38 +08:00
    @qwerthhusn docker-compose 是可以的哈哈,我之前用的是 docker run
    IurNusRay
        12
    IurNusRay  
    OP
       2021-05-11 12:53:18 +08:00
    @saytesnake 恩,是这样的,刚刚试了一下,在 compose 文件里面可以直接用".:/project"这样的语法
    IurNusRay
        13
    IurNusRay  
    OP
       2021-05-11 12:54:05 +08:00
    @stille 谢谢大佬
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5838 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 02:43 · PVG 10:43 · LAX 18:43 · JFK 21:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.