300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 应用程序连接不到mysql_Docker无法将应用程序连接到MySQL

应用程序连接不到mysql_Docker无法将应用程序连接到MySQL

时间:2022-10-29 15:54:51

相关推荐

应用程序连接不到mysql_Docker无法将应用程序连接到MySQL

docker compose默认情况下会创建虚拟网络,所有的容器/服务都可以通过一个IP地址相互连接。通过使用links、depends_on或网络别名,它们可以通过主机名相互联系。在您的例子中,主机名是服务名,但可以覆盖它。(参见:docs)

根据您的设置,my_common_package容器/服务中的脚本应该连接到3306端口上的mysql。(不是端口localhost上的3306)

还要注意,只有在服务的Dockerfile没有EXPOSE语句时,才需要使用expose。标准的mysql映像已经做到了这一点。在

如果要将容器端口映射到localhost,则需要使用ports,但仅在必要时才这样做。在services:

mysql:

image: mysql:5.6

container_name: test_mysql_container

environment:

- MYSQL_ROOT_PASSWORD=test

- MYSQL_DATABASE=My_Database

- MYSQL_USER=my_user

- MYSQL_PASSWORD=my_password

volumes:

- db_data:/var/lib/mysql

ports:

- "3306:3306"

这里我们说的是mysql容器中的端口3306应该映射到端口3306上的localhost。在

现在您可以使用docker外部的localhost:3306连接到mysql。例如,您可以尝试在本地(而不是在容器中)运行testsql.py。在

容器到容器的通信总是使用每个容器的主机名进行的。把容器想象成虚拟机。在

您甚至可以找到使用docker network list创建的网络docker compose:

^{pr2}$

。。然后使用docker network inspect 查看细节。在

分配给容器的IP地址可能是非常随机的,因此容器到容器通信的唯一可行方法是使用主机名。在

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。