Ruby on rails Docker compose无法访问本地主机

Ruby on rails Docker compose无法访问本地主机,ruby-on-rails,docker,nginx,docker-compose,Ruby On Rails,Docker,Nginx,Docker Compose,我目前正在Ruby on Rails上使用docker compose,但有一个严重的问题。我无法通过在chrome搜索栏上键入localhost:3000来访问localhost。这是docker compose.yml version: '3.6' services: rails: build: context: . dockerfile: ./docker/rails/Dockerfile volumes: - .:/code

我目前正在Ruby on Rails上使用
docker compose
,但有一个严重的问题。我无法通过在chrome搜索栏上键入
localhost:3000
来访问localhost。这是docker compose.yml

version: '3.6'
services:
  rails:
    build:
      context: .
      dockerfile: ./docker/rails/Dockerfile
    volumes:
      - .:/code
    environment:
      RAILS_ENV: development
    restart: always
    command: bundle exec rails s -b '0.0.0.0'
  nginx:
    build: ./docker/nginx
    restart: always
    ports:
      - "3000:80"
    depends_on:
      - rails

这是docker ps的输出

CONTAINER ID        IMAGE                       COMMAND                  CREATED              STATUS              PORTS                  NAMES
abb871c7091e        _ex_nginx              "nginx -g 'daemon of…"   About a minute ago   Up About a minute   0.0.0.0:3000->80/tcp   mates_ex_nginx_1
7507ee9496c4        _ex_rails              "./docker-rails-entr…"   About a minute ago   Up About a minute                          mates_ex_rails_1
cat/etc/hosts
的结果如下所示

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
255.255.255.255 broadcasthost

127.0.0.1       localhost
::1             localhost

# Added by Docker Desktop
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
在docker日志上,它显示rails正在
0.0.0.0:3000
上运行

rails_1  | * Listening on tcp://0.0.0.0:3000

任何答复都将不胜感激!提前谢谢。

您能举一个请求失败的例子吗?你从哪里提出请求?请记住,每个容器都是自己的
localhost
,并且不同于主机的
localhost
@DavidMaze抱歉,我没有说清楚。我刚在chrome搜索栏上输入localhost:3000,它拒绝连接。你的主机环境是什么?(你在Windows系统上使用Docker工具箱吗?)你的nginx配置在端口80上侦听吗?@DavidMaze我在使用Docker for Mac。是的,在
default.conf
文件中,我编写了
listen 80 default\u服务器;侦听[:]:80默认_服务器