通过上一篇 Dockerfile 语法与指令的学习,本节就开始应用 Dockerfile 来制作本人的 Docker 镜像啦。
Docker 镜像构建
新建 app.py 文件
from flask import Flask app = Flask(__name__) @app.route(‘/’) def hello(): return ‘Hello World! Hogwarts.’
本代码次要性能是当咱们拜访页面的时候显示一段文字“Hello World! Hogwarts.”。
新建 Dockerfile-build 文件
FROM python:3.7-alpine LABEL maintainer=”hogwarts” # 工作门路设定为 /code WORKDIR /code # 复制 app.py 到容器内 /code 目录 COPY app.py /code # 创立环境变量给 Flask 应用 ENV FLASK_APP app.py ENV FLASK_RUN_HOST 0.0.0.0 # 装置 gcc 工具、python 的依赖 RUN apk add –no-cache gcc musl-dev linux-headers && pip install flask # 映射端口 EXPOSE 5000 STOPSIGNAL SIGTERM # 为容器设置默认启动命令 CMD [“flask”, “run”]
应用 build 命令构建镜像,
docker build -f Dockerfile-build -t app:v1.0 .
默认 Dockerfile 要在当前目录下,才能够间接运行 docker build。如果 Dockerfile 在别的门路上面则须要增加 - f 参数指定 Dockerfile 的门路。-t app:v1.0:指定构建的镜像名字
.:构建镜像时的上下文目录。固定写法,构建镜像时要先切换到放有 Dockerfile 的目录下。
编辑
镜像构建实现后,就能够应用新镜像提供服务啦。能够应用 docker images | grep app 来查看生成的镜像。
编辑
咱们能够通过 docker run 命令启动咱们本人构建的镜像噢。最初通过浏览器拜访 http:// 你的 IP:5000 来拜访启动的服务。
docker run –name app -p 5000:5000 app:v1.0
编辑
最初,咱们本人构建的镜像能够通过 docker save 命令导出给别的小伙伴应用,还能够用 docker push 命令推送到 registry 服务器上给别的小伙伴应用呢,是不是很便捷呀!