【发布时间】:2021-04-18 10:27:38
【问题描述】:
我已经尝试运行我的 docker-compose.yml 文件 2-3 天,并且花了很多时间在互联网上查找修复程序,但似乎没有任何效果。主机为Windows 10,Docker 计算机为Linux。
使用此命令创建卷:
docker volume create --driver local --opt type=none --opt device='C:\Users\Kishan\Desktop\db' --opt o=bind mssqldb
以下是我的 docker-compose.yml 文件
version: '3.8'
services:
db:
image: mcr.microsoft.com/mssql/server:2017-latest
volumes:
- mssqldb:/opt/var/mssql/data
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=yourStrong@Password
- COMPOSE_CONVERT_WINDOWS_PATHS=1
restart: always
ports:
- "1433:1433"
api:
depends_on:
- db
entrypoint: ["./wait_for.sh", "db:1433", "-t", "3600", "--", "execute", "api"]
image: api:latest
ports:
- "80:80"
restart: always
volumes:
mssqldb:
external: true
我不确定它的运行是否没有任何错误,但我没有看到在我的 C:\Users\Kishan\Desktop\db 中创建数据库文件(MDF 和 LDF 文件)。有人可以帮帮我吗?
【问题讨论】:
-
对于你正在做的事情(试图向你的容器公开一个特定的主机目录),我认为绑定挂载会比 docker 卷更好。不幸的是,我无法访问 Windows 系统,因此我无法重现您的问题或验证我的解决方案是否有效。
-
\在 Linux 中是一种转义,因此如果在 bash shell 或 Linux Docker 引擎中解析命令,则路径变为:C:UsersKishanDesktopdb。 Linux 路径分隔符是/,我不认为你想要:,所以它可能是/c/Users/Kishan/Desktop/db通过哪个 Windows 安装(例如 WSL2 与 HyperV VM)。 -
感谢您的回答,但两个答案都没有帮助。
标签: docker docker-compose docker-volume