![是否可以通过 SqlAlchemy 中的名称连接到 docker db 容器?](https://linux22.com/image/711659/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%20SqlAlchemy%20%E4%B8%AD%E7%9A%84%E5%90%8D%E7%A7%B0%E8%BF%9E%E6%8E%A5%E5%88%B0%20docker%20db%20%E5%AE%B9%E5%99%A8%EF%BC%9F.png)
我有以下 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 完全陌生,很乐意听到最佳实践等。谢谢。