docker.io mysql,mysql – docker.io – 应用程序和数据库容器之间的Docker链接

"在两个独立的Docker容器上运行Scala-Akka应用程序时,遇到无法连接到MySQL数据库的问题。Docker的--link标志用于建立容器间的网络连接,但需要手动配置应用程序以使用环境变量进行连接。通过使用如${DB_PORT_3306_TCP_ADDR}
摘要由CSDN通过智能技术生成

我试图在两个独立的Docker容器上使用我的MySQL数据库的Scala-Akka应用程序.我发现Docker允许开发人员使用名为–link的标志将他们的应用程序链接到他们的数据库.在我曾经用于创建图像的Dockerfiles中,我已经添加了EXPOSE 3306 8080.

这就是我运行容器的方式:

docker run -d -p 3306:3306 --name mysql centos6mysql

docker run -d -p 8080:8080 --name scalaapp --link mysql:db centos6scala

运行容器后,我使用了docker ps,我能够看到活动容器.但是,似乎应用程序容器没有使用MySQL容器中的数据库.谁知道什么是错的?

解决方法:

Docker中的链接允许在容器之间建立网络连接. Docker将为链接容器定义环境变量,以获取URL,IP,端口和协议.这些名称将基于容器的名称.例如:

DB_NAME=/web2/db

DB_PORT=tcp://172.17.0.5:5432

DB_PORT_5432_TCP=tcp://172.17.0.5:5432

DB_PORT_5432_TCP_PROTO=tcp

DB_PORT_5432_TCP_PORT=5432

DB_PORT_5432_TCP_ADDR=172.17.0.5

您可以使用这些环境变量来设置Akka应用程序容器以连接到数据库容器.但是,您必须手动配置应用程序容器才能执行此操作. Docker不会自动为您建立连接.

因此,在应用程序的某个位置,您需要将这些值传递给启动脚本,这可能看起来像:

./restcore --Ddb.default.db="jdbc:mysql//${DB_PORT_3306_TCP_ADDR}:${DB_PORT_3306_TCP_PORT"

标签:docker,mysql,scala

来源: https://codeday.me/bug/20190528/1171649.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值