Dockerfile轻体验

344 阅读1分钟

本文以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

Dockerfile reference
深入理解 Docker 构建上下文
使用 Dockerfile 定制镜像