出处:https://blog.csdn.net/qq_35531549/article/details/88958715
1.拉取python3.6镜像
docker image pull python:3.6
2.找一个目录创建test目录,目录下创建一个打印hello world的python flask项目作为例子
cd test
sudo vim main.py
- 内容如下
from flask import Flask
from flask import Flask, render_template, request
from flask import jsonify
def create_app():
app = Flask(__name__)
return app
app = create_app()
@app.route('/')
def index():
return 'hello world!'
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000)
-
保存退出
-
需要用到flask 所以需要pip3 install flask 支持
-
运行一下试试
python main.py
- 启动成功
- 浏览器输入localhost:5000
- 出现hello world!
3. 和test同级目录创建Dockerfile
文件(不带后缀)
- 内容如下
基于的基础镜像
FROM python:3.6
#代码添加到code文件夹
ADD ./test /code
# 设置code文件夹是工作目录
WORKDIR /code
# 安装支持
RUN pip install flask -i https://pypi.douban.com/simple/
CMD ["python", "/code/main.py"]
- 保存退出
注意,此处安装支持时,项目中使用 pip install -r requirements.txt 即可安装全部环境
4. 把python项目制作成镜像
- 在Dockerfile同级目录执行
docker build -t flask_test .
flask_test
为镜像名 .
表示当前目录
出现
Successfully built a69e5b09b454 #镜像id
Successfully tagged flask_test:latest #镜像名字
即为成功
- 执行docker image ls 查看
5.运行镜像,生成并启动容器
- 执行命令:
docker run -i -t -p 5000:5000 --name flask_test_c flask_test
-i:表示交互式容器,非启动后立刻结束的容器
-t: 表示终端式
-p 9060:9060:表示将docker的5000端口,映射到Linux虚拟机的5000端口
也就是说,访问Linux虚拟机的5000端口,就是在访问docker容器的5000端口
–name flask_test_c:给容器取个名字,嫌麻烦可以省去
flask_test:容器是用哪个镜像启动的(一个容器,必须依赖一个镜像启动)
- 和上面用python main.py启动效果一致,同时生成一个容器
- 浏览器输入localhost:5000
- 出现hello world!
小记
删除image镜像是会提示占用,此时先删除对应的容器再删除image即可