如何从一个python程序打包成为image,然后上传到dockerhub,最后下载image,生成对应的container容器。走咱们一起走个流程下来。
python程序
- 编写python程序
mkdir flask-hello-world
cd flask-hello-world/
vim app.py
![](https://img.haomeiwen.com/i11223715/109fe9ce2a2c2752.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)
![](https://img.haomeiwen.com/i11223715/5a1bfd3fa71636df.png)
- 运行python程序
python app.py
![](https://img.haomeiwen.com/i11223715/f8cc2b973f2b1949.png)
#安装flask插件
sudo yum -y install epel-release
sudo yum -y install python-pip
pip install flask
python app.py
![](https://img.haomeiwen.com/i11223715/fe5ffff81cedb947.png)
![](https://img.haomeiwen.com/i11223715/e90d77c677d86e10.png)
![](https://img.haomeiwen.com/i11223715/12bf1fb5816613a0.png)
![](https://img.haomeiwen.com/i11223715/60cce2e049ee1ab5.png)
编写Dockerfile文件
vim Dockerfile
![](https://img.haomeiwen.com/i11223715/e263f3f495b600fd.png)
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"]
![](https://img.haomeiwen.com/i11223715/8193985b958477f3.png)
![](https://img.haomeiwen.com/i11223715/10902c5c10def39b.png)
![](https://img.haomeiwen.com/i11223715/bd16d3dfb1bdbf3e.png)
docker image ls
![](https://img.haomeiwen.com/i11223715/c46b4d91c4bdc558.png)
运行container
docker run zhugeaming/flask-hello-world
![](https://img.haomeiwen.com/i11223715/a9c2a8eab412324d.png)
#后台运行
docker run -d zhugeaming/flask-hello-world
![](https://img.haomeiwen.com/i11223715/227ee545b20b9716.png)
容器有2个一个是刚才执行,一个后台执行的,后台直接执行。不加入-d的已经退出了。
![](https://img.haomeiwen.com/i11223715/033ed7b13028ea5f.png)
PS:本次就是做了个实战,通过四步
- 代码编写好
- 环境python环境
- 第三方依赖
- 执行命令
往期精彩
- docker导学(一)
- 容器的技术概述(二)
- docker的魅力初体验-5分钟安装wordpress不走弯路(三)
- docker官网介绍(四)
- 如何在mac上安装docker(五)
- 如何在window上安装docker(六)
- 如何在mac上通过vagrant安装虚拟机(七)
- 如何在window上通过vagrant安装虚拟机(八)
- docker-Machine的本地使用(九)
- docker-Machine的本地使用(十)
- 在linux/mac下通过Docker-Machine在阿里云上的使用(11)
- docker架构和底层技术(12)
- docker Image概述(13)
- 手动建立一个base Image(14)
- 什么是Container(15)
- 构建自己的Docker镜像(16)
- Dockerfile详解(17)
- 镜像的发布(18)
网友评论