python - 访问容器中的数据库

标签 python mysql docker mysql-connector-python

我有一个容器化的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/

相关文章:

python - pip install - 由对等方重置连接

python - Anaconda:使用 Spyder IDE 查找版本

php - 数据不粘在用户个人资料上

docker - 由于Docker永久卷,在GitLab顶部构建的管道失败

python - 验证字符串的最简单方法是它需要多少个数字并且都是整数?

javascript - Flask 到 Dygraph - 如何传递数据?

MySQL:如何找出在级联删除中删除了哪些记录

php - 使用 PDO 根据 mySQL 中其他两个表的结果从表中选择行

docker - 我使用 traefik 和 docker 设置的反向代理无法解析 Web 服务器地址

python - 无法在 docker 容器中输入 ipdb 控制台