尽管使用 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 prunedocker-compose up,但它没有正常工作。

curl localhost:8000
>>> curl: (56) Recv failure: Connection reset by peer

容器内的服务应在 IP 地址提供:0.0.0.0 出于某种奇怪的原因,127.0.0.1 不起作用。