无法访问我的.NET容器

时间:2018-05-12 10:42:59

标签: .net docker centos docker-compose

我正在使用安装了DockOS和docker-compose的CentOS 7.4.1708虚拟机来部署带有MSSQL服务器的.NET应用程序。 但是,尽管docker-compose可以构建和运行图像和容器,但我无法从我的主机或dockerhost访问它。 我尝试过使用主机上的Firefox,Google,wget和Invoke-Webrequest以及dockerhost tolocalhost:8080,0.0.0.0:8080,ipaddressvm:8080和ipaddresscontainer:8080。

我认为这可能是我使用的端口或Docker镜像的问题。 但是,我已经将所有必要的端口添加到防火墙,并且似乎没有解决问题。 我正在使用的Docker图像似乎工作正常。它的microsoft / dotnet:2.0.5-sdk-2.1.4,与我的.NET项目相同。

我已经在下面包含了我的dockerfile,docker-compose.yml和防火墙规则:

cat > Dockerfile << EOF 
FROM microsoft/dotnet:2.0.5-sdk-2.1.4

RUN mkdir -p /app

WORKDIR /app

COPY . /app

RUN dotnet restore

RUN dotnet build

EXPOSE 5000/tcp

ENV ASPNETCORE_URLS http://*:5000

ENTRYPOINT ["dotnet", "run"]
EOF

cat > docker-compose.yml << EOF 
version: "3"

services:
  web:
    build: .
    ports:
      - "8080:5000"
    depends_on:
      - db
  db:
    image: "microsoft/mssql-server-linux"
    environment:
      SA_PASSWORD: "Vagrant123"
      ACCEPT_EULA: "Y"
EOF

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=5000/tcp --permanent
firewall-cmd --add-port=1433/tcp --permanent
firewall-cmd --reload

我的智慧结束了。 我已经尝试添加静态路由,使用默认端口80,将http-和https服务添加到防火墙,并尽可能使用TCP / IP堆栈进行故障排除。 我无法正确地告诉我哪里出错,也无法进一步解决问题。

1 个答案:

答案 0 :(得分:0)

检查密码要求

您的密码(例如r"(?<=\n\n|\•\s)[A-Z-\s]{2,}(?=\n\n|\s\•)" )不符合complexity requirements。因此,请尝试添加非字母数字字符,例如感叹号(Vagrant123)。

检查日志

要检查错误,请运行:!(其中docker logs ID是来自ID的SQL容器ID)。