我已经尝试运行我的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 文件)生成。请有人能帮我吗?
\
在 Linux 中是一个转义字符,因此如果在 bash shell 或 Linux Docker 引擎中解析命令,则路径变为:C:UsersKishanDesktopdb
。Linux 路径分隔符是/
,我认为您不需要:
,所以它可能是/c/Users/Kishan/Desktop/db
。像 larsks 一样,我没有 Windows 机器来验证这一点,而且它可能因 Windows 安装方式而异(例如 WSL2 vs HyperV VM)。 - BMitch