无法使用链接的mysql数据库在docker中启动应用程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了无法使用链接的mysql数据库在docker中启动应用程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1538字,纯文字阅读大概需要3分钟。
内容图文
![无法使用链接的mysql数据库在docker中启动应用程序](/upload/InfoBanner/zyjiaocheng/894/16da1086a5254fc0b6eb84496ed7093b.jpg)
我正在使用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配置,如下所示:
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文件中连接为
external_links:
- mongo_dev
所以在我的应用程序配置中使用这样的环境变量:
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主机
mysql: { host: 'mysql', user: 'root', password: '', database: 'testdb' }
您将看到所有链接主机都在/ etc / hosts中命名,如:
172.17.0.2 composetest_mysql_1 fffb39e63df6
172.17.0.2 mysql fffb39e63df6 composetest_mysql_1
172.17.0.2 mysql_1 fffb39e63df6 composetest_mysql_1
内容总结
以上是互联网集市为您收集整理的无法使用链接的mysql数据库在docker中启动应用程序全部内容,希望文章能够帮你解决无法使用链接的mysql数据库在docker中启动应用程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。