Нет доступа к запущенному docker контейнеру
Проделанные шаги:
- Передал через
scp
папку с проектом на сервер по ssh (все файлы docker уже были созданы); - Перешел в папку с проектом на сервере и запустил команду
docker compose -d --build
; - Создались 2 образа и два контейнера запущенные с портами которые указаны в
docker.yml
. Результат командыdocker ps
:
d4d32fe214e3 edmanagementsystemapp "dotnet EdManagement…" 18 seconds ago Up 15 seconds 8002/tcp, 0.0.0.0:8002->8080/tcp edmanagementsystem_edmanagementsystem.app_1
8a58ab955ead edmanagementsystemapi "dotnet EdManagement…" 18 seconds ago Up 15 seconds 8001/tcp, 0.0.0.0:8001->8080/tcp edmanagementsystem_edmanagementsystem.api_1
Однако при попытке получить доступ по ip + порт получаю ошибку:
This site can’t be reached185.196.118.81 refused to connect.
Try:
Checking the connection
Checking the proxy and the firewall
ERR_CONNECTION_REFUSED
Направьте пожалуйста в правильную сторону. Что я делаю не так и что нужно сделать чтобы всё заработало? Локально всё прекрасно работает. Т.е. скорее всего проблема во взаимодействии Kernel и Nginx (я так предполагаю). Файлы docker ниже:
#Docker.yml
version: '3.4'
services:
edmanagementsystem.app:
image: ${DOCKER_REGISTRY-}edmanagementsystemapp
build:
context: .
dockerfile: EdManagementSystem.App/Dockerfile
ports:
- 8002:8080
edmanagementsystem.api:
image: ${DOCKER_REGISTRY-}edmanagementsystemapi
build:
context: .
dockerfile: EdManagementSystem.API/Dockerfile
ports:
- 8001:8080
proxy:
build: path
#App.Dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8002
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["EdManagementSystem.App/EdManagementSystem.App.csproj", "EdManagementSystem.App/"]
COPY ["EdManagementSystem.DataAccess/EdManagementSystem.DataAccess.csproj", "EdManagementSystem.DataAccess/"]
RUN dotnet restore "./EdManagementSystem.App/EdManagementSystem.App.csproj"
COPY . .
WORKDIR "/src/EdManagementSystem.App"
RUN dotnet build "./EdManagementSystem.App.csproj" -c $BUILD_CONFIGURATION -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./EdManagementSystem.App.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "EdManagementSystem.App.dll"]
#API.Dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8001
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["EdManagementSystem.API/EdManagementSystem.API.csproj", "EdManagementSystem.API/"]
COPY ["EdManagementSystem.DataAccess/EdManagementSystem.DataAccess.csproj", "EdManagementSystem.DataAccess/"]
RUN dotnet restore "./EdManagementSystem.API/EdManagementSystem.API.csproj"
COPY . .
WORKDIR "/src/EdManagementSystem.API"
RUN dotnet build "./EdManagementSystem.API.csproj" -c $BUILD_CONFIGURATION -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./EdManagementSystem.API.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "EdManagementSystem.API.dll"]
#Docker-compose.override.yml
version: '3.4'
services:
edmanagementsystem.app:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_HTTP_PORTS=8002
ports:
- "8002:8080"
edmanagementsystem.api:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_HTTP_PORTS=8001
ports:
- "8001:8080"
Ответы (1 шт):
Автор решения: N0mercy -
→ Ссылка
Для начала стоит проверить порты в ufw:
sudo ufw allow 8001
sudo ufw allow 8002
sudo ufw status
Далее сами логи docker:
docker logs <container_id>
и посмотреть конфигурацию nginx
Я бы посоветовал временно отключлючить ufw, но делать осторожно