本站教程收集整理的这篇文章主要介绍了无法使用链接的mysql数据库在docker中启动应用程序,本站教程本站觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用docker运行我的nodejs应用程序,只有几个数据库,其中一个是mysql.
我在docker hub上找到了MysqL镜像,并在docker-compose.yml中使用它
app:
build: .
volumes:
- ./:/var/www/app/
working_dir: /var/www/app/
command: node app.js
ports:
- "3000:3000"
links:
- mongo
- elasticsearch
- MysqL
MysqL:
image: MysqL
environment:
MysqL_DATABASE: testdb
mongo:
image: mongo
elasticsearch:
image: elasticsearch
所有构建和应用程序使用MysqL conenction配置,如下所示:
@H_578_6@mysqL: { host: 'localhost', user: 'root', password: '', database: 'testdb' }
应用程序尝试启动和停止MysqL连接错误.
Error: connect ECONNREFUSED 127.0.0.1:3306
我想知道docker MysqL图像是否可以通过compose文件链接到app容器.请解释如何正确链接MysqL容器.
提前致谢!
我自己的答案
当您使用任何类型的链接其他容器(external_link或link)时,您可以根据容器的名称在应用程序配置文件中设置进程环境变量
process.env.<container_name>_PORT_<container_port>
SailsJS到Mongo示例:
我有一个名为mongo_dev的容器,它在我的docker compose文件中连便宜美国vps接为
external_links:
- mongo_dev
所以在我的应用程序配置中使用这样的环境变量:
@H_578_6@mongo: { module : 'sails-mongo', host : process.env.MONGO_DEV_PORT_27017_TCP_ADDR || 'localhost', port : process.env.MONGO_DEV_PORT_27017_TCP_PORT || '27017', user : null, password : null, database : 'database_name' }
解决方法:
链接的MysqL容器将是你的MysqL主机
@H_578_6@mysqL: { host: 'MysqL', user: 'root', password: '', database: 'testdb' }
您将看到所有链接主机都在/ etc / hosts中命名,如:
172.17.0.2 composetest_R_452_11845@ysqL_1 fffb39e63df6
172.17.0.2 MysqL fffb39e63df6 composetest_R_452_11845@ysqL_1
172.17.0.2 MysqL_1 fffb39e63df6 composetest_R_452_11845@ysqL_1
本站总结
以上是本站教程为你收集整理的无法使用链接的mysql数据库在docker中启动应用程序全部内容,希望文章能够帮你解决无法使用链接的mysql数据库在docker中启动应用程序所遇到的程序开发问题。
如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。