簡體   English   中英

無法連接到已部署的容器

[英]Unable to connect to a deployed container

我在AWS EC2上部署了Docker容器並將端口5001暴露給世界,但是當我嘗試在18.130.178.90:5001/users上查看它時,我Unable to connect

5001    tcp 0.0.0.0/0   ✔

入站端口5001已暴露。 由AWS IPv4 Public IP 18.130.178.90分配的IPv4 Public IP 18.130.178.90

我可以嘗試什么?

在此處輸入圖片說明

要求的屏幕截圖:

在此處輸入圖片說明

Dockerfile:

FROM python:3.6.9-alpine
LABEL maintainer="mark.alexa@gmail.com"

RUN apk update && apk add --virtual build-deps gcc python-dev musl-dev && \
    apk add postgresql-dev && apk add netcat-openbsd

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt

COPY ./entrypoint.sh /usr/src/app/entrypoint.sh
RUN chmod +x /usr/src/app/entrypoint.sh

COPY . /usr/src/app

CMD ["/usr/src/app/entrypoint.sh"]

Docker-compose.yml:

version: '3.7'

services:
  users:
    build:
      context: ./users
      dockerfile: Dockerfile

    ports:
      - 5001:5000
    environment:
      - FLASK_ENV=production
      - APP_SETTINGS=project.config.DevelopmentConfig
      - DATABASE_URL=postgres://postgres:postgres@users-db:5432/users_prod
      - DATABASE_TEST_URL=postgres://postgres:postgres@users-db:5432/users_test
    depends_on:
      - users-db

  users-db:
    build:
      context: './users/project/db'
      dockerfile: Dockerfile
    ports:
      - 5435:5432
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres

由於您要嘗試連接到容器,因此我假設您已使用AWS ECS-EC2選項部署了該容器,對於要與該容器建立的特定連接,這將是一個安全組問題。 我將首先檢查安全組。 此外,請確保將當前正在運行的Docker容器的物理主機映射到5001上的容器端口的端口。因此,您應該看到連接到Docker容器端口的物理主機端口。 讓我知道是否有幫助。

問題是通過SSH進入已部署的容器確定的。 容器使用了錯誤的證書。 我在本地運行docker-machine regenerate-certs testdriven-prod1然后創建了新證書,這些證書已應用於已部署的容器,現在我可以連接到它了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM