1
我有2個docker容器,它們都包含mysql數據庫,並且我爲每個容器打開端口3305,3306。 Docker + MYSQL:無法訪問容器外的mysql
爲3306:3306的容器,我可以
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, Numeric, String
import os
cwd = os.getcwd()
import sys
sys.path.insert(0, cwd + '/vatic-docker/vatic')
#from models import *
engine = create_engine('mysql://root:1111' '@172.17.0.2:3306/vatic')
Session = sessionmaker (bind = engine)
session = Session()
Base = declarative_base()
在容器外部訪問它可是我無法訪問3305:由
engine = create_engine('mysql://root:1111' '@172.17.0.3:3306/vatic')
這回3306集裝箱的MySQL數據庫我錯誤信息:
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2003, "Can't connect to MySQL server on '172.17.0.3' (111)")
我現在應該怎麼做?
我都試一下。我認爲'0.0.0.0:3305 - > 3306/tcp'意思是'3306'是我公開給主機的端口 – pwan
不,這意味着你正在將主機端口3305上的請求轉發到容器端口3306。連接字符串也似乎是不正確的。編輯答案。 –
我不明白。 'engine = create_engine('mysql:// root:[email protected]:3305/vatic')'對我不起作用。我需要修改容器端口或? – pwan