我在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
我可以尝试什么?
请求的屏幕截图:
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
答案 0 :(得分:0)
由于您要尝试连接到容器,所以我假设您已使用AWS ECS-EC2选项部署了该容器,对于您要与该容器建立的特定连接,我假设这是一个安全组问题。我将首先检查安全组。此外,请确保将当前正在运行的Docker容器的物理主机映射到5001上的容器端口的端口。因此,您应该看到连接到Docker容器端口的物理主机端口。让我知道是否有帮助。
答案 1 :(得分:0)
问题由ssh确定到已部署的容器中。容器使用了错误的证书。我在本地运行void writeFile(String text)
{
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
openFileOutput(FILENAME, MODE_PRIVATE)));
bw.write(text);
bw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
void readFile() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
openFileInput(FILENAME)));
text.setText("");
String str = "";
while ((str = br.readLine()) != null) {
text.setText(text.getText() + str);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
,然后它创建了新证书,这些证书已应用于已部署的容器,现在我可以连接到它了。