【发布时间】:2021-11-29 18:45:17
【问题描述】:
我正在使用带有 linux 容器的 windows。我有一个用于 api 和 ms sql 数据库的 docker-compose 文件。我正在尝试将卷与数据库一起使用,以便即使我的容器被删除,我的数据也会保留下来。我的 docker-compose 文件如下所示:
version: '3'
services:
api:
image: myimage/myimagename:myimagetag
environment:
- SQL_CONNECTION=myserverconnection
ports:
- 44384:80
depends_on:
- mydatabase
mydatabase:
image: mcr.microsoft.com/mssql/server:2019-latest
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=mypassword
volumes:
- ./data:/data
ports:
- 1433:1433
volumes:
sssvolume:
当我做 docker-compose up 时,一切都很好。我将数据输入数据库,我的 api 能够访问它。我遇到的问题是当我停止一切并尝试删除我的数据库容器,然后再次执行 docker-compose up 时。数据不再存在。我试过先创建一个外部卷并添加
外部:真实
到卷部分,但这没有用。我也弄乱了卷的路径,而不是 ./data:/data 我已经拥有
- sssvolume:/var/lib/docker/volumes/sssvolume/_data
但还是会发生同样的事情。我的理解是,如果您命名一个卷,然后在不同的容器中按名称引用它,它将使用该卷。
我不确定我的配置是否错误,或者我是否误解了卷的用例并且它们无法执行我希望它们执行的操作。
【问题讨论】:
-
也许你正在寻找this
标签: docker docker-compose docker-volume