是否可以通过 SqlAlchemy 中的名称连接到 docker db 容器?

是否可以通过 SqlAlchemy 中的名称连接到 docker db 容器?

我有以下 docker 容器,它们共享一个网络连接,并且exec进入api允许我 ping db,这一点没问题。

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                              NAMES
8790d379ddb9        codeinsight/database   "/run-database.sh"       3 minutes ago       Up 3 minutes        0.0.0.0:3306->3306/tcp             db
88b2022876cc        codeinsight/rest-api   "python /usr/src/a..."   3 minutes ago       Up 3 minutes        3000/tcp, 0.0.0.0:3000->8989/tcp   api

db但是,当使用 sqlalchemy(可能不是特定于框架!)连接时:

self.engine = create_engine('mysql+pymysql://user_name:password@db:3306/dbname', echo=True)

我什么也没得到但连接被拒绝

Can't connect to MySQL server on 'db' ([Errno 111] Connection refused

那么,当定义并建立链接时,是否可以通过容器名称进行连接?还是我做错了?我对 docker 完全陌生,很乐意听到最佳实践等。谢谢。

相关内容