【问题标题】:Flask application Docker ngnix烧瓶应用 Docker nginx
【发布时间】:2018-08-22 11:46:48
【问题描述】:

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

使用 docker-compose up and scale 命令:

docker-compose up --scale web=2

结果:

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 应用程序中通过一些获取请求得到的结果:

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)。

有什么方法可以用来在我的烧瓶应用程序中显示容器 ID? 谢谢

【问题讨论】:

    标签: docker nginx flask


    【解决方案1】:

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

    import os
    id = os.environ['HOSTNAME']
    

    或者

    import socket
    print(socket.gethostname())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 2017-11-24
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多