1.1.构建Python3环境的镜像
由于Flask依赖于Python的环境,那我就先构建一个Python镜像,然后在Python镜像的基础上继续构建我所想要的Flask环境。下面是我的Dockerfile文件(比较简单):
##需要依赖的基础镜像,我这里就直接使用最新的ubuntu镜像,注意必须放在
开头
FROMubuntu
##接下来是作者信息,这个是方便别人找你算账
MAINTAINERpanleiming 1025624185@qq.com
##设置环境变量
ENVLANG en_US.UTF-8
##设置时区,容器启动的默认时间与北京时间不一致,需要进行设置
RUNln -s -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
##更新索引
RUNapt-get update
##安装python3和pip3
RUNapt-get install -y python3 &&
apt-get install -y python3-pip
以上就是简单的python3的镜像制作,然后我们在当前Dockerfile文件目录使用docker build命令构建我们的镜像:
docker image build -t python3:1.0 .
应该是没啥问题的,运行完后再使用docker image ls命令会发现镜像中有刚刚构建的python3:1.0镜像啦。
1.2.构建Flask镜像
构建的Dockerfile如下:
##基础镜像使用刚刚构建的python3:1.0镜像
FROMpython3:1.0
##作者信息
MAINTAINERpanleiming 1025624185@qq.com
##设置环境变量,因为flask运行要export LC_ALL=C.UTF-8和
##export LANG=C.UTF-8,这里我们酒设置到环境变量中
ENVLC_ALL=C.UTF-8
ENVLANG=C.UTF-8
##设置运行的app及运行环境
ENVFLASK_APP=flaskr
ENVFLASK_ENV=development
##安装flask包
RUNpip3 install flask
##创建一个目录用于存放项目
RUNmkdir /opt/flaskr
##设置容器的工作目录
WORKDIR/opt
##设置绑定的目录
VOLUME/opt/flaskr
##暴露80端口
EXPOSE80
##设置容器启动时就启动服务
ENTRYPOINT["flask", "run", "-h", "0.0.0.0", "-p", "80"]
进行镜像构建并启动容器查看是否起作用:
docker run -ti -v /root/docker/flask:/opt/flaskr -p 8080:80 flask:1.0

容器启动成功,我已经预先把我的项目放到宿主机的
/root/docker/flask目录下,下面看下能否正常访问:
简单的flask镜像就构建成功了。一些构建镜像的常用命令在我的日记本中有链接地址,不熟悉的客官可以看下了解下。