1、docker安装
略
2、flask demo生成镜像
导出项目依赖requirement.txt
pip freeze > requirements
会将不相关的依赖包一起导出。
导出纯净依赖requirement.txt
安装:pip install pipreq
导出命令:pipreqs ./
出现GBK编码出错,使用:pipreqs ./ --encoding=utf8 命令,即可导出项目纯净的依赖包。
编辑Dockerfile文件
#基础镜像
FROM ubuntu:latest
#代码添加到code文件夹
ADD ./test /project
# 设置project文件夹是工作目录
WORKDIR /project
# 安装依赖
RUN apt-get update -y &&apt-get install -y python3-pip python3-dev
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
CMD ["python3","/project/app.py"]
压缩文件上传到Ubuntu系统中
生成镜像
docker build -t flaskdemo .
镜像名只能小写
查看镜像
docker images 或docker image ls
3、docker运行
运行容器:
查看存在容器:
docker ps -a
查看运行容器:
docker ps
进入容器:查看、添加依赖
sudo docker exec -it 容器ID /bin/bash
退出容器
exit
更新容器:容器内部新增依赖时,退出后需要更新。
docker commit -m="has update" -a="matt"(作者) e218edb10161(容器ID) ubuntu:v2(镜像名)
停止容器运行
docker stop 容器ID
启动容器
docker start 容器ID
4、接口测试
外部局域网postman测试ubuntu flask接口:
直接运行python3 app.py
运行显示两个地址:
虚拟机本地地址:http://127.0.0.1:5000 可访问
虚拟机局域网地址: http://192.168.1.142:5000 可访问
docker+flask测试
方法一:
docker run flaskdemo
docker环境下只能通过 172.17.0.3:5000访问接口,本地及外部局域网之间不能访问。
方法二:
docker run -d -p 127.0.0.1:5000:5000 --name demo flaskdemo
可以通过本地127.0.0.1:5000及172.17.0.3:5000地址访问,外部局域网之间不能访问。