Я использую виртуальную машину с CentOS 7.4.1708 с установленным Docker и docker-compose для развертывания приложения .NET с сервером MSSQL.
Однако, несмотря на то, что 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 и firewall-rules ниже:
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, насколько это возможно для контейнеров.
Я не могу правильно сказать, где я ошибся, и я не могу устранить ее дальше.