我有一个容器化的Python应用程序(目前是Windows 10),它连接到MySQL8.0 DB,加载和操作数据,转换为XML并使用MQTT发布它们。尽管我是一个理解上有些困难的 Docker 新手,但我单独为 python 应用程序构建了一个简单的图像和容器。问题是,我和我的团队可能想将数据库放置在 Docker 中。是否可以将数据库中的表/数据插入到 docker-container 中?
所有在线数据库都有 docker-images,但我未能传递我们用于数据和表的数据库。 Access host database from a docker container 我之前搜索过,发现了一些有趣的帖子,但没有一个完全回答我的问题
这是连接到数据库的代码部分:
conc = mysql.connector.connect(user='root3r', password='**********', host='******',
database='sql_data', auth_plugin='mysql_native_password')
如果数据库位于容器内,我应该在主机参数中传递什么IP?
编辑:好的,经过多次试验,我使用了命令“docker-machine ip”,并且该 IP 对我有用,所以我的本地应用程序成功连接到 Dockerized-DB,但我无法使用相同的命令从任何其他远程计算机连接python.app
docker-machine IP 仅对 docker 主机可见吗?
最佳答案
如果您使用 docker-compose,Docker 将在所有组合容器之间建立一个内部网络。在这种情况下,您可以将容器的名称作为主机传递。 例如,在 docker-compose.yml 文件中,有 2 个容器正在运行:
version: "3.2"
services:
api:
image: python
db_container_name:
image: postgres
您可以使用以下内容从 api 到数据库容器进行 HTTP 调用:
conc = mysql.connector.connect(user='root3r',password='**********',hostst='db_container_name',database='sql_data',auth_plugin='mysql_native_password') ```
关于python - 访问容器中的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57092632/