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

news2025/1/20 0:57:44

通过上一篇 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 服务器上给别的小伙伴使用呢,是不是很便捷呀!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二十八—— 四十三

二十八、JavaScript——if-else语句 if-else语句- 语法: if(条件表达式) { 语句 }else{ 语句。。。 } - 执行流程 if-else执行时,先对条件表达式进行判断 如果结果为true,则执行if后得而语句 如果结果为false,则执行else后的语句 if-else if-…

公众号名称排名优化

HTML 实例解释 <p> 元素&#xff1a; <p>This is my first paragraph.</p> 这个 <p> 元素定义了 HTML 文档中的一个段落。 这个元素拥有一个开始标签 <p>&#xff0c;以及一个结束标签 </p>。 元素内容是&#xff1a;This is my firs…

生产环境LVM卷ext4文件系统故障修复处理

一、问题描述 某项目因存储视频流泪数据,数据量较大,生产环境当时已达158TB,采用LVM+Ext4存储,在某次LVM在线扩容过程中,扩容失败,报错:inode_counter 溢出,从字面看就i节点数量超过最大限制了,被lvresize命令忽略,报出警告:Invalid argument While checking for on…

Ac-GA-K(Ac)-AMC,577969-56-3

Ac- gak (Ac)-AMC&#xff0c;在蛋白酶偶联试验中测量组蛋白去乙酰化酶I类(HDAC 1、2、3和8)和II类(HDAC 6和10)活性的荧光底物。hdac催化Lys脱乙酰生成Ac-GAK-AM。 Ac-GAK(Ac)-AMC, fluorogenic substrate for measuring histone deacetylase class I (HDAC 1, 2, 3, and 8) a…

朴素二进制表示法

思路方案 在安全领域的研究中我们发现&#xff0c;很多数据预处理的步骤&#xff0c;在不同的场景下中都可以相互 借鉴&#xff0c;甚至可以进行直接复用。例如&#xff0c;对于加密流量相关的数据&#xff0c;当算法工程师 获取到一批加密流量的 pcap 包之后&#xff0c;不论他…

「Docker学习系列教程」基础篇小总结及高级篇预告

通过前面十来篇的学习&#xff0c;我们已经把docker基础篇学习完了。这篇文章&#xff0c;咱们就来小总结下基础篇学习的东西以及介绍接下来高级篇中&#xff0c;将会学习到哪些知识点。 基础篇总结&#xff1a; 第一篇&#xff0c; 凯哥就介绍了怎么在Centos系统中安装D…

【微服务之分布式全局Id】分布式全局ID生成

分布式全局ID解决方案 1、UUID 最容易想到的就是 UUID (Universally Unique Identifier) 了&#xff0c; UUID 的标准型式包含 32 个 16 进制数字&#xff0c;以连字号分为五段&#xff0c;形式为 8-4-4-4-12 的 36 个字符&#xff0c;这个是 Java 自带的&#xff0c;用着也简…

DBCO-PEG-Silane|DBCO-PEG-SIL|二苯并环辛炔-聚乙二醇-硅烷

DBCO-PEG-Silane&#xff0c;DBCO 试剂是一类点击化学标记试剂&#xff0c;含有非常活泼的 DBCO&#xff08;&#xff08;二苯并环辛炔&#xff09;基团&#xff0c;DBCO 试剂可以通过无铜点击化学与叠氮化物标记的分子或生物分子发生反应。DBCO 点击化学可以在水性缓冲液中运行…

用噪点滤镜回忆童年电视机的雪花屏

介绍 相信很多人80,90后的同学对童年里电视机的突然出现刺啦刺啦的雪花屏记忆犹新&#xff0c;本期将用 pixi.js 来完成一个电视机播放动漫然后突然出现雪花屏的动画&#xff0c;里面主要讲解了如何使用pixi.js播放帧动画和如何用噪点滤镜制造雪花屏。 演示 正文 初始化渲染…

web前端网页设计期末课程大作业:关于城市旅游的HTML网页设计 ——北京

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…

微服务框架 SpringCloud微服务架构 多级缓存 48 多级缓存 48.2 OpenResty 快速入门

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 多级缓存 文章目录微服务框架多级缓存48 多级缓存48.2 OpenResty 快速入门48.2.1 直接开干48 多级缓存 48.2 OpenResty 快速入门 48.2.1 直…

Linux(三) makefile与gdb调试

makefile mkefile文件中定义了一系列的规则来指定&#xff0c;哪些文件需要线编译&#xff0c;哪些后编译&#xff0c;哪些需要重新编译&#xff0c;甚至进行更复杂的功能操作&#xff0c;因为makefile就像一个Shell脚本一样&#xff0c;其中也可以执行操作系统的命令。 mkef…

java计算机毕业设计基于安卓Android的教学考勤系统APP

项目介绍 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设…

4个表格1个工具,解决客户的分类及管理

1897年&#xff0c;意大利经济学者帕累托发现&#xff1a;“社会上20%的人占有80%的社会财富”。 后来这一法则被发现可以适用到很多领域&#xff0c;包括客户管理。具体解释为“一家企业80%的收益来源于20%的客户”&#xff0c;即20%客户创造了企业80%的收益。 由于20%的客户…

分布式事务处理方案大 PK

[toc] 说好了写 TienChin 项目的&#xff0c;最近这个分布式事务算是一个支线任务吧&#xff0c;今天是再来一个短篇和小伙伴们总结一下分布式事务。 首先先说一个大原则&#xff1a;分布式事务能不用就不要用&#xff0c;毕竟这个用起来还是有一些麻烦的。当然&#xff0c;不…

B/S端界面控件DevExtreme内置的图标库介绍

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#xff0c;使您可以利用现代Web开发堆栈&#xff08;包括React&#xff0c;Angular&#xff0c;ASP.NET Core&#xff0c;jQuery&#xff0c;Knockout等&#xff09;构建交互式的Web应用程序&#xff0c;该套件附带功能齐…

闯关

我回来啦&#xff01;停更的几个月&#xff0c;我生了个娃。6.7斤的小虎妞&#xff0c;健健康康、白白胖胖。她现在已经五个多月了&#xff0c;能抬头、会翻身、会咯咯咯地笑、能拿住小玩具、还能摘我的眼镜……过程挺曲折的。不夸张地说&#xff0c;鬼门关溜达了一圈。好在&am…

邀请函小程序开发,减少设计制作局限性

随着社交平台和互联网技术的发展&#xff0c;很多产品的类型都在不断地发生着改变&#xff0c;就连邀请产品现在都出现了电子版的邀请函&#xff0c;颠覆了我们对于传统纸质邀请函的认知。无论是在日常生活学习还是工作中我们都会用到邀请函&#xff0c;而现在越来越多的人倾向…

Android逆向中常用工具和命令

Android逆向中常用工具和命令 Wifi ADB Google Store wifi ADB 当没有数据线时&#xff0c;可以开启wifiADB adb connect 192.168.0.101:5555开始食用 android 运行shell命令 https://github.com/termux/termux-app/releases ADB shell 截图 vim ~/.bash_profile curre…

CAD怎么添加打印机设备?CAD打印机添加步骤

CAD打印时未在系统中找到合适的打印机该怎么办呢&#xff1f;CAD怎么添加打印机设备&#xff1f;本文小编就以浩辰CAD软件为例来给大家分享一下CAD添加打印机设备的详细操作步骤吧&#xff01; CAD添加打印机设备步骤&#xff1a; 首先在浩辰CAD中打开图纸文件&#xff0c;然后…