[英]Cannot connect to Docker mySQL instance from Tortoise/Python, until I first connect to mySQL instance from Docker PHPMyAdmin
[英]How to connect to mySQL docker instance from another docker instance on the same machine
我使用以下命令设置了 mySQL 到 docker:
我正在使用 python 连接器进行连接。
host=127.0.0.1
port=3306
user=root
root=5895
mysql.connector.connect(host=host, port=port, user=user, password=password, database=database)
现在,如果我在本地(而不是在 docker 上)运行我的 python 文件,这就可以正常工作了。 现在我想创建一个 dockerized 版本。
Dockerfile
FROM python:3.8
WORKDIR /twitter-alpha
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY /constants ./constants
COPY /connectors ./connectors
COPY backfillFollowed.py .
COPY backfillUsers.py .
COPY .env .
RUN apt-get update
RUN apt-get -y install vim
然后,我使用docker build -t twitter-alpha. --no-cache
docker build -t twitter-alpha. --no-cache
并使用docker run -itd -p 3000:3000 --name test -.network m.network twitter-alpha
启动这个 docker 实例。 当我为我的 python 文件(下面的 Dockerfile)创建一个 docker 图像并运行相同的 python 脚本时,我得到mysql.connector.errors.DatabaseError: 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (99)
如果我将 127.0.0.1 切换为从 docker 中找到的docker inspect --format='{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' a627c65ddc3c
它可以工作,但这似乎是一个糟糕的方法因为每次创建容器时 IP 都会改变。
解决方案是设置 host= nameOfDockerInstance
花了我一段时间
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.