关于 Docker 目录挂载
- 0次
- 2021-06-02 21:06:25
- idczone
如果项目需要在不同环境下部署,那么宿主机的项目文件路径也可能不同,用绝对路径的方式就不行了,但是相对路径貌似会在 /var/lib/docker/volumes 下面创建文件夹,是否可以将 docker-com抗投诉服务器pose.yaml 所在的文件夹挂载到容器内呢?比如-v .:/project
> 但是相对路径貌似会在 /var/lib/docker/volumes 下面创建文件夹
这个不是相对路径,而是 docker 管理的 volume
要想相对路径,就用./xxx:/xxx
我试过了,提示是不行的:If you intended to pass a host directory, use absolute path
建议不同机器用不同的 env 文件
你是使用 docker run 的吧,-v 好像是不能使用相对路径,可以配置在 docker-compose.yml ,volumes:是支持相对路径的,docker-compose up
我记得好像可以吧,难道是 docker-compose 或者 docker 版本不同?
不行的话用 env 文件,把相对路径的前半部分放到 env 里面,然后 yaml 里面引用一下就行了,即使环境变动改动也只需要改动一份 env 文件就行了
docker-compose 可以用 ${PWD}/project:/project
/var/lib/docker/volumes 不是所谓的相对路径,是默认路径吧?
挂载的时候仅填写名称不带路径斜杠即是在那个目录里,如 project-a:/project
docker compose
volumes:
- ./abc:/xxx/xxx
你的数据就在 compose 目录下的 abc 中
根据容器不同,有时你得先创建 abc ,在 docker-compose up -d 启动..
是的,run 的确是不行,刚刚试了 docker-compose 可以,谢谢啦
docker-compose 是可以的哈哈,我之前用的是 docker run
恩,是这样的,刚刚试了一下,在 compose 文件里面可以直接用".:/project"这样的语法
谢谢大佬