未知的MySQL服务器主机后端数据库(-3)在带有Docker的Flask应用程序中



我正在努力学习docker,我找到了这门关于教育的课程

为什么我在/Docker目录中执行docker compose up,一切都运行良好,但当我尝试导航到";127.0.0.1:5000";在我的浏览器中,我收到了那个错误。

我有以下docker组成文件:

version: '3'
services:
web:
# Path to dockerfile.
# '.' represents the current directory in which
# docker-compose.yml is present.
build: .
# Mapping of container port to host

ports:
- "5000:5000"
# Mount volume 
volumes:
- "C:/Users/Docker/:/code"
# Link database container to app container 
# for rechability.
links:
- "database:backenddb"
database:
# image to fetch from docker hub
image: mysql/mysql-server:5.7
# Environment variables for startup script
# container will use these variables
# to start the container with these define variables. 
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "MYSQL_USER=testuser"
- "MYSQL_PASSWORD=admin123"
- "MYSQL_DATABASE=backend"
# Mount init.sql file to automatically run 
# and create tables for us.
# everything in docker-entrypoint-initdb.d folder
# is executed as soon as container is up nd running.
volumes:
- "C:/Users/Docker/db/init.sql:/docker-entrypoint-initdb.d/init.sql"

包含烧瓶env和所有要求的代码可以在这个repo中找到:

https://github.com/venky8283/Docker

您只需要签出即可提交:4de325cf1da2428e757be4f2cc53f35c84c598

您的数据库服务名为"数据库";

默认情况下,它将创建一个主机名";数据库";指向您的mysql服务器,您的";web";服务那么你应该使用这个名字,而不是";db";配置代码时。

你还指定了一个";链接";属性,您可以完全删除该属性以使其工作。

如果你想保留它,也要保留"db";hostname从web服务访问数据库,然后像一样操作

links:
- "database:db"

最新更新