本文以CentOS 7系统为例,使用Dockerfile构建一个Hello Flask
目录结构如下
demo
├── Dockerfile
├── app.py
└── requirements.txt
Dockerfile
# 基础镜像
FROM python:3.7.6-slim-stretch
# LABEL指令将元数据添加到镜像,由于MAINTAINER被官方打了废弃标记,故此处以LABEL替代之
LABEL maintainer="demo"
# 将上下文中的所有文件拷贝至容器内/app目录下
COPY . /app
# 指定工作目录
WORKDIR /app
# 安装依赖 此处指定了国内的pip源
RUN pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com -r requirements.txt
# 对外暴露端口
EXPOSE 5000
# 执行命令
CMD ["python", "app.py"]
app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello Flask'
if __name__ == '__main__':
app.run(host="0.0.0.0")
requirements.txt
flask==1.1.1
正文
1.首先进入demo文件夹,使用docker build构建镜像
docker build -t flask-demo .
注意:docker build 最后的.号,其实是在指定镜像构建过程中的上下文环境
2.使用docker images命令查看镜像列表
docker images | grep flask-demo
[root@centos-7 demo]# docker images | grep flask-demo
flask-demo latest ced2f5529ece 53 minutes ago 164MB
使用docker run 运行该镜像
# -d 后台运行
# -p 5000:5000 冒号左边是本机端口号,右边则是容器内的端口号
# 使用IMAGE ID或者镜像名称都可以
docker run -d -p 5000:5000 ced2f5529ece
打开浏览器查看效果
使用docker ps命令查看当前正在运行的容器
docker ps
使用命令进入容器内部
docker exec -it 93f862a594f7 bash