【发布时间】:2020-04-20 11:26:04
【问题描述】:
当我检查我的 mysql 容器时,我已经使用主机名 server_default 和 --network=server_default 构建了我的 django docker,并使用相同的网络运行了 mysql(mysql 容器在 django 服务器之前运行),但是当我运行我的 django 服务器时它失败并出现错误:
"Can't connect to MySQL server on 'server_default' ([Errno -2] Name or service not known)"
我已连接到我的服务器容器,但无法连接到 mysql 容器。 server_default 是网桥类型。 我的运行命令:
sudo docker run -d -p 8000:8000 --network=server_default scotech-server
sudo docker run -d --network=server_default scotech-db
【问题讨论】:
-
您能否编辑问题以添加您运行的实际
docker network和docker run命令? -
我已添加,感谢您的快速响应
-
数据库特别需要一个
--name参数,Django 应用程序可以使用该容器名称作为DNS 名称来访问数据库。仅网络名称是不够的。 -
我尝试将 scotech-db 作为主机名,但没有成功 :((我的 mysql 名称)
-
Docker 文档中的 Use bridge networks 解释了这一点,尽管不是特别清楚。即使您没有使用 Docker Compose,Networking in Compose 也会对所涉及的步骤进行更清晰的描述。