• docker容器中的peewee如何连接已有的容器中的数据库


    首先,两个容器必须是在同一网络下,有2个办法。

      一个是在同一个docker-compose.yml文件下使用links参数,比如:

        version: '3'
        services:
         redis:
         image: redis:3.2.8
         ports:
         - "6379:6379"
         volumes:
         - ./docker/docker_redis:/data
         restart: always
        web:
         build: .
         ports:
         - "3000:3000"
         links:
         - redis
    然而目前docker已经计划移除links,所以不建议使用links了,使用networks代替。那么第二种办法就是:
        version: '3'
        services:
         web:
         build: .
         command: python run.py
         ports:
         - "5000:5000"
         volumes:
         - .:/python_test
         networks:
         - test_default
        networks:
          test_default:
         external: true
    其中test_default是创建数据库容器时所在的网络。查看当前docker的网络有哪些可以用 docker network ls.
    检验是否在同一网络下:可以在启动容器后,使用docker exec -it 容器名 /bin/bash 进入容器使用: ping 容器名。能ping通说明两个容器在同一个网络下。
    最后使用peewee链接容器中的数据库只用将想要访问的数据库的容器名填到host里面即可:
    db = MySQLDatabase("test", host="test_mysql_1", port=3306, user="root", passwd="123456")
    其他第一个参数"test"是数据库名。
  • 相关阅读:
    换一个角度看问题:火柴棒等式
    队列之blah集合
    专题——极值定理及应用
    专题——计数原理
    Antiprime数-数论
    Openjudge-NOI题库-旅行-数论
    砝码设计-数论
    有理数分解-数论
    洛谷-神奇的幻方-NOIP2015提高组复赛
    NOIP2014-提高组初赛C语言解析(选择填空题)
  • 原文地址:https://www.cnblogs.com/tyrionyang/p/9089489.html
Copyright © 2020-2023  润新知