r69*_*r69 5 docker docker-compose
我正在尝试像这样运行我的图像:
version: '3.8'
services:
gamit:
image: myimage
volumes:
- app:/app
volumes:
app:
driver: local
driver_opts:
type: none
device: ./app
o: bind
Run Code Online (Sandbox Code Playgroud)
起初,我的目标是app在我的文件附近有一个目录docker-compose.yml(应用程序目录)应该保留app容器内部的目录(它已经包含一些重要数据)。我的部署场景假设该目录最初在主机上为空,然后跟上容器内部的更改。当我运行它时,docker compose up我的app目录附近docker-compose.yml仍然是空的。我注意到它/var/lib/docker/volumes/myimage/_data是用容器中的数据创建和填充的(我从另一个 stackoverflow 问题中假设我的device: ./app选项设置了主机目录的位置)。然后我删除了/var/lib/docker/volumes/myimage/目录,现在它抛出一个错误docker failed to mount local volume mount no such file or directory。我的总体目标是最初使用docker compose up空app目录运行,从容器内部填充它,然后将容器内部的所有更改放入其中。
小智 7
在 ubuntu 20.04、Docker 版本 20.10.17 和 Docker compose 版本 v2.6.0 中
我尝试使用:${PWD}/app而不是./app。像这样:
version: '3.8'
services:
gamit:
image: myimage
volumes:
- app:/app
volumes:
app:
driver: local
driver_opts:
type: none
device: ${PWD}/app
o: bind
Run Code Online (Sandbox Code Playgroud)
这对我来说可以。据我所知,对于 Docker 中的本地卷,您需要有一个绝对路径来安装。${PWD}环境变量显示项目的当前路径。但有时${PWD}在某些版本的 Docker 或某些版本的 Docker Compose 中不能很好地工作!
https://docs.docker.com/engine/install/linux-postinstall/有合适的信息
| 归档时间: |
|
| 查看次数: |
18191 次 |
| 最近记录: |