『中级篇』Dockerfile实战(19)

如何从一个python程序打包成为image,然后上传到dockerhub,最后下载image,生成对应的container容器。走咱们一起走个流程下来。

####python程序

  • 编写python程序mkdir flask-hello-world cd flask-hello-world/ vim app.py
image.png
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hell():
        return "hello docker public attention:idig88"
if __name__=='__main__':
        app.run(port=8888)
  • 运行python程序python app.py
    image.png
#安装flask插件
sudo yum -y install epel-release
sudo yum -y install python-pip
pip install flask
python app.py
image.png

编写Dockerfile文件

vim Dockerfile
FROM python:2.7
LABEL maintainer="zhugeaming"
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak
RUN echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
RUN echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
RUN echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
RUN apt-get update
RUN pip install flask
COPY app.py /app/
WORKDIR /app
EXPOSE 8888
CMD ["python","app.py"]
image.png
docker image ls

运行container

docker run zhugeaming/flask-hello-world
#后台运行
docker run -d zhugeaming/flask-hello-world

容器有2个一个是刚才执行,一个后台执行的,后台直接执行。不加入-d的已经退出了。

PS:本次就是做了个实战,通过四步

  1. 代码编写好
  2. 环境python环境
  3. 第三方依赖
  4. 执行命令

image

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏phodal

使用 OpenWhisk 自建 Serverless 服务

在尝试了使用 AWS 开发 Serverless 应用之后,我便想尝试使用 OpenWhisk 框架来搭建自己的 Serverless 服务。 Apache O...

2995
来自专栏后端云

OpenStack Pike dashboard noVNC 不能访问

现象:openstack dashboard novnc不能查看,报Failed to connect to server (code: 1006)错误

752
来自专栏Android 研究

android本地lib通过gradle上传到本地nexus上

在apply plugin: 'com.android.library'下添加如下内容:

1044
来自专栏NetCore

给Ocelot做一个Docker 镜像

写在前面 在微服务架构中,ApiGateway起到了承前启后,不仅可以根据客户端进行分类,也可以根据功能业务进行分类,而且对于服务调用服务也起到了很好的接口作用...

26910
来自专栏编程坑太多

『中级篇』docker网络(23)

PS:本机基本上docker的多虚拟机网络已经完成了,比较简单,毕竟是演示环境,可能有老铁说,为啥设置成了自动获得IP,而不是静态IP,毕竟是学习的环境,我也尝...

1124
来自专栏开源FPGA

Viavdo&ISE&Quartus II调用Modelsim级联仿真

1374
来自专栏游戏开发那些事

【游戏开发】基于VS2017的OpenGL开发环境搭建

  最近,马三买了两本有关于“计算机图形学”的书籍,准备在工作之余鼓捣鼓捣图形学和OpenGL编程,提升自己的价值(奔着学完能涨一波工资去的)。俗话说得好,“工...

813
来自专栏编程坑太多

『中级篇』docker网络(23)

PS:本机基本上docker的多虚拟机网络已经完成了,比较简单,毕竟是演示环境,可能有老铁说,为啥设置成了自动获得IP,而不是静态IP,毕竟是学习的环境,我也尝...

422
来自专栏企鹅号快讯

ALM损坏后的恢复步骤

ALM是HP出品的软件开发生命周期软件,其全称是Application Lifecycle Management,其采用B/S结构,从需求,业务模型到测试用例和...

17610
来自专栏运维前线

CentOS7 安装RocketMQ并使用

RocketMQ 介绍 Apache RocketMQ™是一个开源的分布式消息传递和流数据平台。 RocketMQ Github: https://git...

24210

扫码关注云+社区