首页 > 解决方案 > 应用服务器如何知道如何在没有网络的情况下连接到 mysql 主机

问题描述

我正在使用 joget 和 docker:

# create a volume container for shared data
docker volume create jogetdata

# run a MySQL database container
docker run -d --name jogetdb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=jwdb -e MYSQL_USER=joget -e MYSQL_PASSWORD=joget -e MYSQL_DATABASE=jwdb mysql:5.7

# run a Joget Workflow container
docker run -d --link jogetdb:jwdb --name joget -p 8080:8080 -e MYSQL_HOST=jwdb -e MYSQL_DATABASE=jwdb -e MYSQL_PORT=3306 -e MYSQL_USER=joget -e MYSQL_PASSWORD=joget --mount source=jogetdata,target=/opt/joget/wflow jogetworkflow/joget-enterprise

我只是好奇为什么joget能够使用连接到mysql服务器MYSQL_HOST=jwdb?我这里没有使用任何网络?

标签: dockerjogetworkflow

解决方案


对于链接容器,Docker 会在/etc/hosts文件中为您添加一个条目,这样您就可以将名称用作主机名,而不必担心名称解析。

如果您签/etc/hosts入容器,您会看到它与您的 docker 网络中的 IP 地址相匹配。


推荐阅读