尽管使用 docker-compose 进行端口映射,但无法访问 docker 容器中的服务
Cannot reach service in docker container despite port mapping with docker-compose
我有这些文件可以在 docker 容器中启动网络服务器。我可以在8000端口的容器中看到服务运行ning,但是我无法通过网络浏览器访问它。
Docker 文件
FROM continuumio/miniconda3
ENV PYTHONUNBUFFERED=1
RUN mkdir /static
SHELL ["/bin/bash", "-c"]
RUN apt update && apt install -y build-essential time libgraphviz-dev graphviz
RUN conda create -n env -c conda-forge python==3.10 django==4 pip #&& conda init bash
COPY backend/requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY ./backend /backend
WORKDIR /backend/
docker-编写文件
version: "3.3"
services:
backend:
container_name: backend
restart: always
user: ${UID}
build:
context: .
dockerfile: dockerfiles/Dockerfile-backend
env_file:
- ./.env
command: ./manage.py runserver
volumes:
- ./backend/:/backend/
- ${STATIC}:/static/
ports:
- "127.0.0.1:8000:8000"
depends_on:
- db
db:
container_name: db
restart: always
image: postgres:13.4
volumes:
- ${DB}:/var/lib/postgresql/data
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
我 运行ning docker 在 Ubuntu 20.04 虚拟机上,我有一个端口转发到该虚拟机。我之前用过docker network prune
这样的命令,所以我不确定我是否删除了一个需求。我也尝试停止容器和 运行 docker container prune
和 docker-compose up
,但它没有正常工作。
curl localhost:8000
>>> curl: (56) Recv failure: Connection reset by peer
容器内的服务应在 IP 地址提供:0.0.0.0
出于某种奇怪的原因,127.0.0.1 不起作用。
我有这些文件可以在 docker 容器中启动网络服务器。我可以在8000端口的容器中看到服务运行ning,但是我无法通过网络浏览器访问它。
Docker 文件
FROM continuumio/miniconda3
ENV PYTHONUNBUFFERED=1
RUN mkdir /static
SHELL ["/bin/bash", "-c"]
RUN apt update && apt install -y build-essential time libgraphviz-dev graphviz
RUN conda create -n env -c conda-forge python==3.10 django==4 pip #&& conda init bash
COPY backend/requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY ./backend /backend
WORKDIR /backend/
docker-编写文件
version: "3.3"
services:
backend:
container_name: backend
restart: always
user: ${UID}
build:
context: .
dockerfile: dockerfiles/Dockerfile-backend
env_file:
- ./.env
command: ./manage.py runserver
volumes:
- ./backend/:/backend/
- ${STATIC}:/static/
ports:
- "127.0.0.1:8000:8000"
depends_on:
- db
db:
container_name: db
restart: always
image: postgres:13.4
volumes:
- ${DB}:/var/lib/postgresql/data
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
我 运行ning docker 在 Ubuntu 20.04 虚拟机上,我有一个端口转发到该虚拟机。我之前用过docker network prune
这样的命令,所以我不确定我是否删除了一个需求。我也尝试停止容器和 运行 docker container prune
和 docker-compose up
,但它没有正常工作。
curl localhost:8000
>>> curl: (56) Recv failure: Connection reset by peer
容器内的服务应在 IP 地址提供:0.0.0.0 出于某种奇怪的原因,127.0.0.1 不起作用。