对 docker 网络/连接感到困惑

Confused by docker networking / connections

好的,所以我正在尝试将 Rails 应用程序部署到 docker 容器(主机 machine 是 mac)。我想先在开发中部署以检查一切是否正常。

我已经设置了一个 phpmyadmin 服务,我可以通过输入服务器名称 moviedb_mariamovie_1 以及用户 root 和相应的 PW 来连接到服务器。 但是无论我为 Rails 输入 database.yml 都不起作用:我尝试了 localhost,我尝试了 127.0.0.1,我尝试了“mariamovie”,我尝试了“moviedb_mariamovie_1”,然后它当我尝试 rails db:create(或任何实际涉及数据库的内容)时总是说“找不到主机”。 我对此完全感到困惑。我阅读了 docker 手册的数据库部分,但我似乎太笨了。

(我还有其他问题,但一个接一个:)

docker-compose.yml:

version: "3.7"
services:
  moviedb:
    image: tkhobbes/moviedb
    restart: unless-stopped
    ports:
      - 3001:3000
    depends_on:
      - mariamovie
    environment:
      MYSQL_ROOT_PASSWORD: redacted
      RAILS_ENV: development
    volumes:
      - /Users/thomas/Documents/Production/moviedb/storage:/opt/activestorage
  mariamovie:
    image: mariadb
    restart: unless-stopped
    ports:
      - 3333:3306
    environment:
      MYSQL_ROOT_PASSWORD: redacted
  phpmymaria:
    image: phpmyadmin
    restart: unless-stopped
    ports:
      - 8021:80
    depends_on:
      - mariamovie
    environment:
      PMA_PORT: 3333
      PMA_ARBITRARY: 1
    image: nginx:1.21-alpine
    volumes:
      - /Users/thomas/Documents/Production/moviedb/vendor/nginx:/etc/nginx/user.conf.d:ro
    ports:
      - 8020:8020
    depends_on:
      - moviedb
    restart: unless-stopped

database.yml:

default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  host: 127.0.0.1
  port: 3333
  username: redacted
  password: redacted

development:
  <<: *default
  database: newmovie_development
...

您在 docker“网络”中。您的数据库应该可以通过 mariamovie:3306.

从您的 Rails 应用程序(也在里面)访问