码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Docker 镜像构建可以分享的快乐


    通过上一篇 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 的目录下。

    68aeb378efbb76c175baa36277fec028.jpeg

    • 镜像构建完成后,就可以使用新镜像提供服务啦。可以使用 docker images | grep app 来查看生成的镜像。

    ac715790aef25c4da2f375cea529a5c0.jpeg

    • 我们可以通过 docker run 命令启动我们自己构建的镜像噢。最后通过浏览器访问 http://你的IP:5000 来访问启动的服务。

    docker run --name app -p 5000:5000 app:v1.0f6b12009f528932b9b62c3f7400ac118.jpeg

    最后,我们自己构建的镜像可以通过 docker save 命令导出给别的小伙伴使用,还可以用 docker push 命令推送到 registry 服务器上给别的小伙伴使用呢,是不是很便捷呀!

    免费领取:性能测试+接口测试+自动化测试+测试开发+测试用例+简历模板+测试文档


  • 相关阅读:
    目标检测2——借Detectron2源码理解Anchors与RPN
    编写第一个Go程序
    Blazor OIDC 单点登录授权实例7 - Blazor hybird app 端授权
    流的过滤器串链
    什么是机器学习分类算法?【K-近邻算法(KNN)、交叉验证、朴素贝叶斯算法、决策树、随机森林】
    基于springboot实现致远汽车租赁平台管理系统项目【项目源码+论文说明】
    彻底删除vscode以及vscode的插件记录
    四、在pycharm中添加.gitignore文件的语法使用详解
    【算法题解】 Day1 前缀和
    Redis缓存使用技巧和设计方案
  • 原文地址:https://blog.csdn.net/Hogwartstester/article/details/126623662
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号