通过上一篇 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 5000STOPSIGNAL 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
![](https://img-blog.csdnimg.cn/img_convert/b6f45bb6e7346d0df55a2729df4d0560.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=CSDN&url=https://ceshiren.com/t/topic/16586
> > [获取更多技术文章分享和免费资料领取点击链接](https://qrcode.testing-studio.com/f?from=CSDN&url=https://ceshiren.com/t/topic/16586)

Docker 镜像构建可以分享的快乐相关推荐

  1. 追求极简:Docker镜像构建演化史

    // Dockerfile.target.alpine 自从2013年dotCloud公司(现已改名为Docker Inc)发布Docker容器技术以来,到目前为止已经有五年多的时间了.这期间Dock ...

  2. docker 导入镜像_官方下一代Docker镜像构建神器 -- BuildKit

    BuildKit是Docker官方社区推出的下一代镜像构建神器--可以更加快速,有效,安全地构建docker 镜像.Docker v18.06已经集成了该组件.BuildKit可用于多种导出格式(例如 ...

  3. Docker教程(四) Docker镜像构建

    Docker教程(四) Docker镜像构建 本文链接:https://blog.csdn.net/yuan_xw/article/details/77744272 Docker教程(四) Docke ...

  4. Dockerfile 文件结构、docker镜像构建过程详细介绍

    [Docker那些事]系列文章 Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT指令的区别 构建Docker镜像指南,含实战 ...

  5. skywalking—docker镜像构建k8s部署

    前言 skywalking是个非常不错的apm产品,但是在使用过程中有个非常蛋疼的问题,在基于es的存储情况下,es的数据一有问题,就会导致整个skywalking web ui服务不可用,然后需要a ...

  6. 从Docker镜像构建演化史来了解多阶段构建的影响

    现在很多开发者都会慢慢习惯在开发环境通过Docker来构建开发环境,有时候可能会有环境移植的问题,所以需要我们写好一套Dockerfile来构建相关的开发镜像,既然说到镜像,那我想问问大家了解Dock ...

  7. 【工作向】docker镜像构建方法与命令

    序言 docker镜像制作,学习记录 1. docker镜像制作的常见方法 1.1 docker commit基于已有容器构建镜像(手工) 这种方法将已有容器存为新的镜像,但是不建议使用使用这种方式, ...

  8. Docker学习(3)-Docker镜像构建和使用

    Docker学习(1)-Docker简介 Docker学习(2)-Docker基础1 Docker 镜像与制作 Docker 镜像内是否包含内核(bootfs)? 首先,从镜像的体积大小来说,一个比较 ...

  9. Docker 镜像构建之 Dockerfile

    Docker 镜像构建之 Dockerfile 在 Docker 中构建镜像最常用的方式,就是使用 Dockerfile.Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜 ...

最新文章

  1. AI技术如何帮助研究人员重现历史的气味?
  2. mysql 修改配置生效_linux下面MySQL变量修改及生效
  3. C# 泛型多种参数类型与多重约束 示例
  4. Android之内核学习笔记
  5. java请求接口示例_Java 8:功能接口示例
  6. 文件系统及程序的限制关系: ulimit
  7. Android中样式及主题
  8. Windows连接Linux的常用工具
  9. 红芯事件追踪:官方致歉承认基于开源架构;创始人履历被指夸大
  10. Linux下的目录简介
  11. SSM框架原理,作用及使用方法
  12. linux消息队列 性能,消息队列消息总大小的问题
  13. c语言编程实现电脑关机,C语言让电脑关机?system函数功能够大够硬
  14. 微信小程序九宫格抽奖大转盘
  15. 三次握手时,客户端发送的 SYN 报文为什么会被丢弃?
  16. JAVA多媒体网络教学计算机毕业设计Mybatis+系统+数据库+调试部署
  17. C++实现的BP神经网络(代码与详解)
  18. 修改html文件500错误信息,打开网页提示 HTTP500错误的终极解决方法
  19. 圣斗士里隐瞒了非常恐怖的剧情
  20. Idea中new project项目与new module项目区别与验证

热门文章

  1. 团队-中国象棋游戏-模块测试过程
  2. OushuDB入门(四)——数仓架构篇
  3. 小黄车们的命:押金难退成共享家族“职业病”
  4. eclipse怎么恢复默认布局
  5. 漫谈程序员系列:谁是为加班而生的
  6. html给文字添加音标
  7. “元宇宙”虚拟世界的营销法则 “品牌元宇宙空间”算什么?
  8. 时之扉手游如何在电脑上玩 时之扉手游模拟器教程
  9. Java进阶篇之接口
  10. 嗯呐..第一条博客....纪念石家庄培训的晚上....最简单的STL vector