首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flask应用程序Docker ngnix

Flask应用程序Docker ngnix
EN

Stack Overflow用户
提问于 2018-08-22 19:46:48
回答 1查看 39关注 0票数 1

我已经构建了两个Docker镜像,其中包含一个Flask应用程序(web容器)和另一个包含Nginx作为负载均衡器的镜像(nginx容器)。

使用docker-compose up and scale命令:

代码语言:javascript
运行
复制
docker-compose up --scale web=2

结果是:

代码语言:javascript
运行
复制
Starting dockerflaskloadb_web_1 ... done
Creating dockerflaskloadb_web_2 ... done
Starting dockerflaskloadb_nginx_1 ... done
Attaching to dockerflaskloadb_web_1, dockerflaskloadb_web_2, dockerflaskloadb_nginx_1
web_1    | [2018-08-22 11:27:20 +0000] [1] [INFO] Starting gunicorn 19.6.0
web_1    | [2018-08-22 11:27:20 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)
web_1    | [2018-08-22 11:27:20 +0000] [1] [INFO] Using worker: sync
web_1    | [2018-08-22 11:27:20 +0000] [8] [INFO] Booting worker with pid: 8
web_2    | [2018-08-22 11:27:21 +0000] [1] [INFO] Starting gunicorn 19.6.0
web_2    | [2018-08-22 11:27:21 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)
web_2    | [2018-08-22 11:27:21 +0000] [1] [INFO] Using worker: sync
web_2    | [2018-08-22 11:27:21 +0000] [8] [INFO] Booting worker with pid: 8

这是我在Flask应用程序中收到的一些get请求:

代码语言:javascript
运行
复制
nginx_1  |  [22/Aug/2018:11:33:31 +0000] "GET /home HTTP/1.1" 200 5640 "http://192.168.99.100/about" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" "-" -172.22.0.4
nginx_1  |  [22/Aug/2018:11:33:33 +0000] "GET /home HTTP/1.1" 200 5640 "http://192.168.99.100/home" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" "-" -172.22.0.4
nginx_1  |  [22/Aug/2018:11:33:33 +0000] "GET /about HTTP/1.1" 200 3195 "http://192.168.99.100/home" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" "-" -172.22.0.4

应用程序运行良好,但我想知道每个请求将使用哪个容器(web1或web2)。

有没有什么方法可以用来在我的flask应用中显示容器ID?谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-08-22 21:03:27

默认情况下,容器的主机名是容器id。所以就像这样:

代码语言:javascript
运行
复制
import os
id = os.environ['HOSTNAME']

代码语言:javascript
运行
复制
import socket
print(socket.gethostname())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51966181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档