我在python容器docker-centos_mysql-1内有如下程序用于查询mysql数据库import pymysql import importlib,sys importlib.reload(sys) from flask import Flask from flask import render_template app = Flask(__name__) @app.route('/index.py') def index(): print("34m~]34m~U34m~^4m~N[12;9Hdb = pymysql.connect('docker-centos_mysql-1', 'sc', '123456', 'mydb') cur = db.cursor() cur.execute("SELECT * FROM MyTable") rows = cur.fetchall() db.close() print( render_template('ran.html',u=rows) ) return render_template('ran.html',u=rows) if __name__ == '__www__': app.run(host='docker-centos_python-1',port=8800,debug=True)它能同时监听这个容器的8800端口么
时间: 2024-03-26 20:35:46 浏览: 116
是的,这个程序可以同时监听docker-centos_mysql-1容器的8800端口。但是需要注意以下几点:
1. 首先需要确保docker-centos_mysql-1容器已经启动,并且MySQL服务已经启动并监听了默认的3306端口。
2. 在连接MySQL时,需要将连接地址设置为docker-centos_mysql-1容器的IP地址,而不是localhost或127.0.0.1。可以使用以下命令获取容器的IP地址:
```
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' docker-centos_mysql-1
```
然后在连接MySQL时将地址设置为该IP地址即可。
3. 在启动Python程序时,需要将host参数设置为docker-centos_python-1容器的IP地址,否则默认会监听127.0.0.1的8800端口,无法接受来自其他容器的连接请求。可以使用以下命令获取容器的IP地址:
```
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' docker-centos_python-1
```
然后在启动程序时将host参数设置为该IP地址即可。
综上所述,如果docker-centos_mysql-1容器的IP地址为172.17.0.2,docker-centos_python-1容器的IP地址为172.17.0.3,那么可以使用以下代码启动Python程序:
```
if __name__ == '__www__':
app.run(host='172.17.0.3', port=8800, debug=True)
```
然后可以使用浏览器访问“http://172.17.0.3:8800/index.py”,Python程序将查询MySQL数据库并返回结果。
阅读全文