Docker MySQL:连接一个Rails应用程序到MySQL

我有一个在Docker中运行的Rails应用程序。 我想在一个单独的容器中运行MySQL并连接两个。

docker-compose.yml文件如下所示:

 # docker-compose.yml db: image: "mysql:5.6" ports: - 3306 environment: MYSQL_ROOT_PASSWORD: pass MYSQL_DATABASE: dbname MYSQL_USER: user MYSQL_PASSWORD: pass web: build: . ports: - "80:80" env_file: - .env.development links: - db volumes: - "/webapp:/home/app/webapp" 

当我运行docker-machine ip default我得到192.168.99.100

当我运行docker ps我看到mysql在PORT: 3306/tcp, 0.0.0.0:32782->32781/tcp : 3306/tcp, 0.0.0.0:32782->32781/tcp上运行编辑:删除mysql容器并重新启动它后,端口实际上是0.0.0.0:32784->3306/tcp

我正在使用Sequelgem,并使用以下参数连接到我的分贝:

  Sequel::Model.db = Sequel.connect(adapter: 'mysql2', database: 'dbname', user: 'user', password: 'pass', host: '192.168.99.100', port: '3306', loggers: [logger] ) 

当我运行我的应用程序,我得到:

 rake aborted! Sequel::DatabaseConnectionError: Mysql2::Error: Can't connect to MySQL server on '192.168.99.100' (111) /var/lib/gems/2.0.0/gems/mysql2-0.3.18/lib/mysql2/client.rb:70:in `connect' /var/lib/gems/2.0.0/gems/mysql2-0.3.18/lib/mysql2/client.rb:70:in `initialize' /var/lib/gems/2.0.0/gems/sequel-4.23.0/lib/sequel/adapters/mysql2.rb:36:in `new' /var/lib/gems/2.0.0/gems/sequel-4.23.0/lib/sequel/adapters/mysql2.rb:36:in `connect' /var/lib/gems/2.0.0/gems/sequel-4.23.0/lib/sequel/connection_pool.rb:101:in `make_new' // Lots more traces 

任何想法我在这里做错了吗?

尝试在连接设置中使用链接名称作为“主机”。 将IP地址更改为“db”。