Docker 镜像构建可以分享的快乐

举报
霍格沃兹测试开发学社 发表于 2022/04/10 16:50:28 2022/04/10
【摘要】 通过上一篇 Dockerfile 语法与指令的学习,本节就开始使用Dockerfile 来制作自己的 Docker 镜像啦。 Docker 镜像构建新建 app.py 文件from flask import Flaskapp = Flask(__name__)@app.route('/')def hello(): return 'Hello World! Hogwarts.' ...

通过上一篇 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 的目录下。
    ![](https://ceshiren.com/uploads/default/original/3X/1/7/174ee28dd23b8d9294d7c13107bafa0dc6fbc0f6.png)
    镜像构建完成后,就可以使用新镜像提供服务啦。可以使用 docker images | grep app 来查看生成的镜像。
    ![](https://ceshiren.com/uploads/default/original/3X/6/8/6887d500a91efb0712849cb9a502c9eabba1773d.png)
    我们可以通过 docker run 命令启动我们自己构建的镜像噢。最后通过浏览器访问 http://你的IP:5000 来访问启动的服务。
    ```
    docker run --name app -p 5000:5000 app:v1.0
    
    ```
    
    
    ![](https://ceshiren.com/uploads/default/original/3X/e/7/e70ebe3eeb2c64e22590bc94e6217e984fc6d821.png)
    
    最后,我们自己构建的镜像可以通过 docker save 命令导出给别的小伙伴使用,还可以用 docker push 命令推送到 registry 服务器上给别的小伙伴使用呢,是不是很便捷呀!
    
    
    内容全面升级,4 个月 20+ 项目实战强化训练,资深测试架构师、开源项目作者亲授 BAT 大厂前沿最佳实践,带你一站式掌握测试开发必备核心技能(对标阿里P6+,年薪50W+)!直推 BAT 名企测试经理,普遍涨薪 50%+!
    
    ### 
    ⬇️ 点击“阅读原文”,提升测试核心竞争力!
    [原文链接](https://mp.weixin.qq.com/s?__biz=MzU3NDM4ODEzMg==&mid=2247499323&idx=1&sn=4033da21720015140d585855b251c8a0&chksm=fd319cf0ca4615e6edf1fb4c684a61d3ab5e2a2eab36d227e2607f410de700d6592b423f0d93#rd) 
    获取更多内容:https://qrcode.testing-studio.com/f?from=hwyun&url=https://ceshiren.com/t/topic/16586
    [点击查看](https://qrcode.testing-studio.com/f?from=hwyun&url=https://ceshiren.com/t/topic/16586)
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。