zoukankan      html  css  js  c++  java
  • 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"是数据库名。
  • 相关阅读:
    HDU 2594 扩展kmp模板题
    HDU 1358 简单kmp
    HDU 3336 扩展kmp
    SPOJ SUBLEX 求第k小子串
    Codeforces 235C
    HDU 4622 Reincarnation
    HDU 4622 求解区间字符串中的不同子串的个数
    [LeetCode] Length of Last Word 字符串查找
    [LeetCode] Sudoku Solver 解数独,递归,回溯
    [LeetCode] Longest Common Prefix 字符串公有前序
  • 原文地址:https://www.cnblogs.com/tyrionyang/p/9089489.html
Copyright © 2011-2022 走看看