通过上一篇 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 服务器上给别的小伙伴使用呢,是不是很便捷呀!
来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力。
获取更多相关资料:请添加vx,ceshiren001
https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=优快云×tamp=1650939440