试图在mysql和web服务器之间建立连接,但在Dockerfile的帮助下出错
我正在尝试连接两台服务器,一台是数据库(mysql),另一台是Web服务器(httpd)。在docker中,使用dockerfile创建的映像,创建了两个容器并在其中运行代码。两者都在运行,web服务器前端代码工作正常,当我试图输入数据时,出现了错误。我在/var/log/httpd/error\u log中查找-->mysql连接找不到主机“数据”。试图在mysql和web服务器之间建立连接,但在Dockerfile的帮助下出错,mysql,apache,docker,dockerfile,Mysql,Apache,Docker,Dockerfile,我正在尝试连接两台服务器,一台是数据库(mysql),另一台是Web服务器(httpd)。在docker中,使用dockerfile创建的映像,创建了两个容器并在其中运行代码。两者都在运行,web服务器前端代码工作正常,当我试图输入数据时,出现了错误。我在/var/log/httpd/error\u log中查找-->mysql连接找不到主机“数据”。 我想知道如何在web服务器中定义数据库主机?由于2 Dockerfile连接问题,两个IP地址位于同一子网中。主要问题是什么?容器必须位于同一d
我想知道如何在web服务器中定义数据库主机?由于2 Dockerfile连接问题,两个IP地址位于同一子网中。主要问题是什么?容器必须位于同一docker网络中,主机名是服务名(默认情况下) 我建议您使用设计用于运行多个容器(它们之间有链接)的 事先,我会在docker-compose.yml中制作类似的内容:
version: '2.4'
services:
db:
build:
context: .
dockerfile: db.dockerfile
environment:
- MYSQL_ROOT_PASSWORD=foo
web:
build:
context: .
dockerfile: web.dockerfile
然后,键入docker compose up-d
。最后,从web容器,您将能够访问主机“db”
如果你只想使用dockerfiles,也可以验证我在这篇文章中的第一句话。默认情况下,容器位于网络网桥,因此您的容器可能位于同一网络中,但您必须将它们链接起来,以便进行通信。启动db
容器后,必须使用以下选项运行web
容器:
docker run ... --link <db_container_name>:<db_host_name_in_web_container> ...
docker运行--链接:。。。
因此,您可以从web
访问db
,我很感激,但我想从dockerfile执行。我已经从docker compose执行并成功执行了,但是否可能从dockerfile单独执行相同的操作??