首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker.io -应用程序和数据库容器之间的码头链接

docker.io -应用程序和数据库容器之间的码头链接
EN

Stack Overflow用户
提问于 2015-01-21 06:52:42
回答 1查看 6.9K关注 0票数 4

我试图在两个独立的Docker容器上使用我的Scala应用程序和我的MySQL数据库。我发现Docker允许开发人员用名为- link的标志将应用程序链接到他们的数据库。在我用来创建映像的Dockerfile中,我添加了暴露33068080。

我就是这样操作容器的:

代码语言:javascript
复制
docker run -d -p 3306:3306 --name mysql centos6mysql
docker run -d -p 8080:8080 --name scalaapp --link mysql:db centos6scala

在运行容器之后,我使用了docker,并且能够看到活动容器。但是,应用程序容器似乎没有使用来自MySQL容器的数据库。有人知道怎么回事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-21 19:08:45

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

代码语言:javascript
复制
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应用程序容器,以连接到DB容器。但是,您必须手动配置应用程序容器。Docker不会自动为您建立连接。

因此,在应用程序的某个地方,您需要将这些值传递给您的启动脚本,如下所示:

代码语言:javascript
复制
./restcore --Ddb.default.db="jdbc:mysql//${DB_PORT_3306_TCP_ADDR}:${DB_PORT_3306_TCP_PORT"
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28061225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档