当前位置:   article > 正文

Docker 部署 Python 服务

Docker 部署 Python 服务
app.py
  1. from flask import Flask
  2. from redis import Redis, RedisError
  3. import os
  4. import socket
  5. # Connect to Redis
  6. redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)
  7. app = Flask(__name__)
  8. @app.route("/")
  9. def hello():
  10. try:
  11. visits = redis.incr("counter")
  12. except RedisError:
  13. visits = "<i>cannot connect to Redis, counter disabled</i>"
  14. html = "<h3>Hello {name}!</h3>" \
  15. "<b>Hostname:</b> {hostname}<br/>" \
  16. "<b>Visits:</b> {visits}"
  17. return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)
  18. if __name__ == "__main__":
  19. app.run(host='0.0.0.0', port=80)
Dockerfile:
  1. # 使用Python官方镜像作为镜像的基础
  2. FROM python:2.7-slim
  3. # 设置工作空间为/app
  4. WORKDIR /app
  5. # 把当前目录下的文件拷贝到 容器里的/app里
  6. ADD . /app
  7. # 安装requirements.txt中指定的依赖
  8. RUN pip install -r requirements.txt
  9. # 开放80端口
  10. EXPOSE 80
  11. # 设置 NAME 这个环境变量
  12. ENV NAME World
  13. # 当容器启动时,运行app.py
  14. CMD ["python", "app.py"]


docker build -t flaskhello .

docker images

docker run -p 4000:80 flaskhello
后台运行,获得一个容器的ID
docker run -d -p 4000:80 flaskhello

看到缩短的容器ID:
docker ps

网页访问
http://localhost:4000

分享你的镜像

账号注册
test2018
aaaaaa

//登陆
docker login

给镜像打标签
docker tag flaskhello test2018/flaskapp:demo
推送到远端
docker push test2018/flaskapp:demo
随时随地都可以执行
docker run -p 4000:80 test2018/flaskapp:demo


创作不易,小小的支持一下吧!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/679315
推荐阅读
相关标签
  

闽ICP备14008679号