【问题标题】:Data not persisting in docker volume数据未保留在 docker 卷中
【发布时间】: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


【解决方案1】:

MSSQL 将数据存储在 /var/opt/mssql 下,因此您应该将 docker-compose 文件中的卷定义更改为

volumes:
  - ./data:/var/opt/mssql

【讨论】:

    猜你喜欢
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 2021-09-11
    • 2020-07-15
    • 1970-01-01
    • 2020-09-06
    • 2021-04-23
    相关资源
    最近更新 更多