docker - docker-compose 没有数据保存在卷目录中
问题描述
Docker 不保存到卷。
我尝试了不同的组合,但它只是不保存到卷中。他们都没有保存到卷...
我使用以下命令运行它们:
$ sudo docker-compose up -d --remove-orphans
$ sudo docker-compose start
如果我停止并启动 docker 容器,那么数据又会在那里(这意味着 docker 将数据保存在某处……只是不在我指定的卷中)
我的主机正在运行 ubuntu 20.04
该怎么办?
// docker-compose.yml
version: "3.7"
services:
sqlserver:
image: mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
ports:
- "1433:1433"
- "5022:5022"
volumes:
- /media/m/DataLinux/Code/Docker/db-playground/sqldata:/var/opt/sqlserver/data
# - /media/m/DataLinux/Code/Docker/db-playground/sqlbackup:/var/opt/mssql/backups
# - /media/m/DataLinux/Code/Docker/db-playground/sqlserver:/var/opt/sqlserver
# - /media/m/DataLinux/Code/Docker/db-playground/mssql:/var/opt/mssql
environment:
USERID: sa
SA_PASSWORD: Dev1234!
ACCEPT_EULA: Y
mongo:
image: amd64/mongo:4.4.3-bionic
restart: always
volumes:
- /media/m/DataLinux/Code/Docker/db-playground/mongo-data:/var/data
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: secret
postgres:
image: supabase/postgres:0.14.0
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: postgres # user: postgres
# volumes:
# sqldata:
# mongo-data:
# sqlsystem:
# sqllog:
# sqlbackup:
# sqlsecrets:
解决方案
你的问题太令人困惑了:))
根据您的 docker,您将绝对路径指定为存储数据的卷。例如:
media/m/DataLinux/Code/Docker/db-playground/sqldata
然后,如果您的容器已成功启动,您应该去检查该位置。(否则,如果在引导过程中发生任何问题,它会立即显示,您可以看到发生了什么)
我还看到您volumes
在docker-compose.yml
. 请注意,如果您使用这种类型的卷,它们就是Docker volumes
- 由 Docker 管理的卷。它们存储在 中/var/lib/docker/volumes
,您永远不应该手动触摸它们,而应该使用 Docker cli 来处理它们:
docker volume create <volume name>
docker volume delete <volume name>
...
推荐阅读
- c# - 将 json.net 属性反序列化为大写
- javascript - 使用 JavaScript 每两秒一次单击 3 个按钮
- javascript - addEventListener 多次触发
- java - Quarkus 使用 kafka 进行响应式消息传递
- python - 使用 Python 打印 MongoDB 集合的名称
- java - 我是否正确使用了 Android BLE API?
- c++ - 仅当程序第一次运行时,如何创建文件?
- javascript - 从 Firebase 存储获取下载 url 的问题
- javascript - 在 Vue js 中使用 axios 会丢失对象的属性
- python - 如何从网页传递 id 并用于 sql 查询?