问题描述
我正在 Windows 10 内的 Linux 容器中使用 docker-compose 运行我的 web 应用程序和 sql server linux 实例。Docker-Compose 文件如下所示
version: "3.4"
services:
nopcommerce_web:
build: .
container_name: nopcommerce
tty: true
ports:
- "80:80"
depends_on:
- nopcommerce_database
nopcommerce_database:
image: mcr.microsoft.com/mssql/server:2019-CU5-ubuntu-18.04
container_name: nopcommerceDB
ports:
- "1433:1433"
environment:
SA_PASSWORD: "testpassword"
ACCEPT_EULA: "Y"
volumes:
nopcommerce_data:
我可以简单地访问我的网站 http://localhost/。但是我无法使用 sql Server Management Studio 访问 sql server 数据库?
如果我不使用 docker-compose 而只使用 docker 文件来创建容器。我可以简单地使用 127.0.0.1,1433
我什么都试过了。尝试使用我机器的 IP 地址和端口号等。但它不起作用。建议使用 docker-machine ip
命令获取容器的 ip 地址,但 Windows 不推荐使用 docker 工具。
有人可以在这里点亮一些灯吗?为什么我无法连接到 sql server 但我可以连接到 web 应用程序?
解决方法
我认为您可能需要在 docker-compose.yml 中添加以下内容:
expose:
- 1433
否则,容器内外之间没有联系。