news 2026/2/16 5:54:14

Docker容器镜像 (镜像介绍和镜像制作,测试人员如何使用镜像)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker容器镜像 (镜像介绍和镜像制作,测试人员如何使用镜像)

文章目录

  • 1. 镜像介绍
    • 镜像使用场景
  • 2. docker制作镜像
    • docker commit-不推荐
    • dockerfile 创建镜像
      • dockerfile指令解释
      • 创建镜像步骤
    • 开发有直接拉取镜像操作
  • 总结

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。



本文开始

1. 镜像介绍

Docker容器镜像:Docker容器的构建块,它是一个轻量级、独立的可执行软件包。
镜像:包含了运行应用程序所需的所有内容:代码、运行时环境、系统工具、系统库以及依赖项。
镜像是一个只读的模板,可以用来创建容器实例。
【注】镜像:可以看作一堆文件
测试人员:使用镜像搭建测试环境

镜像使用场景

  1. 应用程序打包与交付:将应用程序及其依赖项打包成独立的可移植单元,简化部署流程。
  2. 多语言开发环境:创建包含特定开发环境的容器,避免本地环境配置问题。
  3. 持续集成与持续交付(CI/CD):用于构建、测试和部署应用程序,加速软件交付速度。
  4. 微服务架构:每个微服务打包为一个独立容器镜像,实现服务解耦与独立部署。
  5. 资源隔离与安全性:在同一主机上运行多个应用程序,确保隔离和安全性。
  6. 跨平台与环境一致性:在任何支持Docker的平台上运行,确保部署一致性。

2. docker制作镜像

根据基础镜像搭建一个容器,在容器中安装各种软件,满足自己的使用,成为一个新的镜像;

docker commit-不推荐

dockercommit 已有镜像名称 想要创建的镜像:版本标签dockercommit jenkins jenkins:v10

缺点:

  1. 制作的镜像是一个黑盒,不能知道镜像具体做了什么;
  2. 丢失镜像后,无法复现,没有记录,不友好;

dockerfile 创建镜像

dockerfile: 是一个文件,存储各种命令;可以看作一个自动化脚本;

Dockerfile 是一个文本文件,描述了如何构建镜像(安装什么软件、复制哪些文件、启动什么命令等)。

执行过程:
创建临时容器→运行相关安装指令→build制作镜像→tagged-打标签;

dockerfile指令解释

  1. FROM (指定继承自哪个基础镜像)
  2. RUN (运行shell命令)
  3. ADD/COPY (复制文件)
  4. USER (指定运行用户)
  5. ENTRYPOINT (指定容器启动命令)
  6. ENV (指定环境变量)

dockerfile示例:

FROM centos:7 ADD entrypoint.sh /rootUSERroot RUN yuminstall-ywgetvimRUN yuminstall-yvimwgetRUN yuminstall-ywgetvimgitRUN yuminstall-ywgetRUN yuminstall-y openssh-server openssl RUN yuminstallwgetvimRUN yuminstallgitvimUSERjenkins WORKDIR /root ENTRYPOINT["/bin/bash","/root/entrypoint.sh"]

创建镜像步骤

【注】创建新镜像前提是在基础镜像上进行扩展

  1. 创建Dockerfile文件,其中包含一组指令,创建想要的镜像;(相当于写一个自动化脚本配置相关命令)
    【注】
    a: 保证Dockerfile文件下没有其他内容,创建镜像是需要将工作目录中所有文件上下文发送给docker
    b: 目录名约定为:Dockerfile
catDockerfile
  1. 配置Dockerfile文件,如果开发有直接复制过来(或者直接使用已经开发好的镜像)

  2. docker build命令创建镜像
    docker build -t [创建镜像名称] [工作目录]

# 创建镜像,工作目录.代表在当前目录下读取Dockerfile文件dockerbuild -t runoob/centos:6.7.# 如果不在Dockerfile目录 使用-f指定dockerfiledockerbuild -t tmp:v1.0.

参数说明:
-t :指定要创建的目标镜像名称
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径;
【注】docker build 默认读取工作目录下Dockerfile的文件;
工作目录:外部Dockerfile文件目录路径

上述是开发只给源码,需要自己创建镜像,但是需要使用开发的Dockerfile文件;

开发有直接拉取镜像操作

测试人员直接使用开发人员的镜像部署测试环境;

  1. 获取开发提供的镜像
    开发通常会把镜像推送到 镜像仓库,如 Docker Hub、Harbor、阿里云 ACR 等
  2. 拉取镜像
dockerpull 镜像名称dockerpull company-registry/my-service:feature-login-v2

3.启动容器作为测试环境

dockerrun\--name test-env-login\-d\-p8080:8080\-v $(pwd)/test-data:/app/data\-eENV=staging\--network my-test-net\company-registry/my-service:feature-login-v2

【注】通过 -e(环境变量)、-v(挂载配置/数据)、–network(网络)等方式定制测试环境,而不修改镜像本身;


总结

✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 7:47:56

这两年,抖音电商有一个非常明显的变化:

内容还在卷,但决定生死的,已经不是“谁更会拍”,而是“谁更会生产素材”。 很多品牌表面上在做内容,实际上还停留在三个老模式里: - 靠创意碰运气 - 靠人工堆效率 - 靠投流赌结果 但真正跑出来的团队,早…

作者头像 李华
网站建设 2026/2/14 18:27:32

【品牌包装】产品包装全是中文太掉价?揭秘 AI 如何把“中文包装盒”一键变成“国际大牌英文版”!

Python 包装设计 产品包装本地化 品牌形象 虚拟包装 跨境电商运营 图片翻译 摘要 在亚马逊或独立站上,产品包装(Packaging) 是品牌溢价的关键。一个全英文、设计精美的包装盒,能让产品售价提高 20%。然而,很多中小卖家…

作者头像 李华
网站建设 2026/2/14 14:30:59

B2B软件选型平台深度测评:如何借力专业工具,告别选型迷航?

当企业的采购经理或IT主管面对琳琅满目的B2B软件市场时,一种普遍的无力感常常会悄然浮现。是选择那家声名显赫的行业巨头,还是押注于功能新颖的初创黑马?销售演示天花乱坠,功能列表长得令人眼花缭乱,但隐藏在精美PPT背…

作者头像 李华
网站建设 2026/2/9 16:22:32

大模型与外部资源交互的MCP协议全流程解析

MCP协议(Model Context Protocol)完整工作流程一、流程总览二、七阶段详细拆解(核心步骤)1. 初始化连接:建立通信链路2. 获取工具列表:明确可用“能力”3. 构造函数调用请求:标准化需求指令4. 发…

作者头像 李华
网站建设 2026/2/13 21:08:37

3D动画、VFX 与 CGI 有什么区别?一文讲清三大核心概念与应用场景

在影视、游戏、广告等数字媒体领域,我们经常听到“3D动画”、“VFX(视觉特效)”和“CGI(计算机生成图像)”这三个术语。虽然它们看起来相似,但实际上各自涵盖的范围和应用场景都有明显区别。了解这些基本概…

作者头像 李华