LaoCat带你认识容器与镜像(四【上】)

news2024/11/24 6:45:00

Dockerfile是实际项目生产中,比较常用的一个知识点,故也准备分成上下俩节来讲解。

本章内容

如何查询相关Dockerfile与Dockerfile基础命令介绍

本文实操全部基于Ubuntu 20.04
宿主机 => linux服务器本身

业务不断的扩充累积中,大多数企业应用会选择从单体逐步靠拢分布式、微服务,不管是分布式还是微服务,都会提高部署的风险与成本,项目既不能停止后部署更不能断开后更新,持续集成与滚动更新就有了较大的要求,自动化部署这时便成了这“风口浪尖”的产物,模型大多以git服务提供的“CI/CD”到流水线工具or服务(jenkins/阿里云云效/k8s)最后实现自动更新发布,其中就不可或缺的需要用到Dockerfile。


相关Dockerfile如何查询

前边镜像章节就介绍过了大名鼎鼎的官方镜像仓库docker hub,关于一些常用镜像的Dockerfile也可以从该官方镜像仓库中找到,我们打开docker hub,输入指定镜像(当然,你自己的项目肯定在docker hub搜索不到,需要自己编写,这里以Nginx为主),跳转到镜像详情页即可看到该镜像的Dockerfile链接。

点击某一系列版本后跳转Github,即可看到该镜像对应的Dockerfile文件。
如果上方详情页没有你需要的版本,你可以通过切换Github该项目对应的Tag来找到自己需要的版本,比如我们前几章示例的Nginx版本1.21.3(不是所有的镜像文件都可以通过这样的方式来查找对应版本,有些详情页面就有该版本)。


但到这里并不能直接复制该文件就可以直接使用,需要注意查看Dockerfile是否有对某些文件进行操作,比如这里就可以看到对当前目录的一些文件进行了操作,故需要返回上层目录(同样,有些镜像文件并没有进行任何文件操作,故不需要返回上层目录,直接复制粘贴到自己的创建的Dockerfile文件执行即可)。

这里我们将整个上层目录搬到服务器上。

执行docker build将创建镜像,一大串命令滑屏而过,静待创建完成…

可以看到镜像已经创建成功。


Dockerfile基础命令详解

Dockerfile命令经常需和shell命令配合,故了解一些shell命令可协助看懂Dockerfile文件的描述,另Dockerfile命令中存在一些“相同”作用的命令,这些命令也常常是面试的考点。

分类命令解释
配置命令FROM指定该镜像的基础镜像,比如Java项目会指定基础镜像为Maven or JDK。
配置命令LABEL指定该镜像的元数据标签信息
配置命令ENV指定环境变量
配置命令ENTRYPOINT指定镜像默认入口命令
配置命令EXPOSE指定镜像内服务的端口
配置命令STOPSIGNAL指定退出信号值
配置命令ARG指定创建镜像过程中的变量
配置命令VOLUME指定数据卷挂载点
配置命令WORKDIR指定镜像工作目录
配置命令ONBUILD创建子镜像时指定自动执行的操作命令
配置命令SHELL指定默认shell类型
配置命令HEALTHCHECK执行启动容器时的健康检查
配置命令USER执行启动容器时的用户名或UID
执行命令RUN运行指定命令,RUN是在docker build时运行
执行命令CMD启动容器是默认执行的命令,CMD是在docker run时运行
执行命令COPY复制内容到容器,不会对压缩文件进行解压
执行命令ADD添加内容到镜像,会对压缩文件进行解压

☆ 参考文献:
《Docker技术入门与实战》 第2版
《Docker技术入门与实战》 第3版

◎ 文中所用到的资源链接:
【Debian和 Alpine作为基准Docker映像的对比】
https://blog.csdn.net/jiagoushipro/article/details/125061841
【Docker Hub】
https://hub.docker.com/

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

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

相关文章

Python import自定义模块报错、自定义异常、字符串处理、截取

一、python import自定义的模块报错 问题现象:pycharm中运行一切正常,但是到命令行中(cmd命令行或pycharm的Terminal窗口)运行py文件,就会报错No module named xxx 问题原因: pycharm在每次运行时&#x…

【C进阶】指针的进阶

家人们欢迎来到小姜的世界&#xff0c;<<点此>>传送门 这里有详细的关于C/C/Linux等的解析博客&#xff0c;家人们赶紧冲鸭&#xff01;&#xff01;&#xff01; 客官&#xff0c;码字不易&#xff0c;来个三连支持一下吧&#xff01;&#xff01;&#xff01;关注…

祝大家兔年 新春快乐Happy new year

春节&#xff0c;也被称为农历新年。对于中国人来说&#xff0c;这是规模最大&#xff0c;最重要的传统节日。The Spring Festival is also called Chinese Lunar New Year. Being one of the traditional Chinese festivals, it is the grandest and most important festival …

Ue4 Insights的使用

1.运行UnrealInsights.exe 2.执行独立进程或者打包exe 这时会发现Insights自动创建并开始运行了一个Trace Sessions&#xff0c;持续记录到.utrace文件中 .utrace文件路径 3.也可以通过连接IP地址&#xff0c;获取到该计算机的UE程序。状态为LIVE实时 4.点击右下角Open按钮…

Redis客户端命令基础操作一

查看所有key 语法: keys * 是否存在key 语法: exists [key] 获取包含指定字符串的key 语法&#xff1a; keys *[字符串]* 设置key 语法&#xff1a;set [key] [value] 设置key 语法&#xff1a; setex 【key】【过期时间&#xff08;单位秒&#xff09;】【value】 key重…

时隔 20 年,这个编程语言再次“称王”

近日&#xff0c;全球知名的编程语言流行度排行榜网站 TIOBE 公布了 1 月编程指数信息。前三的编程语言是Python、C 和C&#xff0c;第四为Java&#xff0c;第五是C#。 TIOBE 的 2022 年度编程语言最终花落 C&#xff0c;也是它时隔 20 年后第二次赢得这一称号。 “年度编程语…

行云创新受邀出席2023中国(深圳)阿联酋(迪拜)经贸合作交流会

1月10日&#xff0c;2023中国&#xff08;深圳&#xff09;-阿联酋&#xff08;迪拜&#xff09;经贸合作交流会成功举办。本次交流会充分展示了深圳和迪拜两地城市营商环境和政策优势&#xff0c;并围绕科技创新、数字经济、港口物流等领域发展经验展开分享&#xff0c;来自两…

Linux网络常用命令(ifconfig/ethtool/nmon+n)

Linux网络常用命令ifconfig可设置网络设备的状态&#xff0c;或是显示目前的设置ethtool 是用于查询及设置网卡参数的命令服务端监控工具&#xff1a;nmonnmon可监控的数据类型ifconfig可设置网络设备的状态&#xff0c;或是显示目前的设置 显示linux系统中当前服务器中的全部…

【并发】并发锁机制-深入理解synchronized(二)

【并发】并发锁机制-深入理解synchronized&#xff08;二&#xff09; synchronized 高级篇&#xff08;底层原理&#xff09; synchronized是JVM内置锁&#xff0c;基于Monitor机制实现。 这个Monitor就是管程的意思&#xff0c;它可以控制线程&#xff0c;让其陷入等待&am…

想去看更大的世界,社科院与杜兰大学金融管理硕士项目给予你前行的勇气

当我们的工作生活趋于稳定&#xff0c;我们那颗不安分的心就按捺不住的跳动&#xff0c;想要去看更美的风景&#xff0c;探索更大的世界。所谓遥不可及的梦想才是你见过更大世界的证明&#xff0c;社科院与杜兰大学金融管理硕士项目给予你前行的勇气。一定要不断提高自己的认知…

浅谈函数栈帧(Stack Frame)

&#x1f499;作者&#xff1a;阿润菜菜 &#x1f4d6;专栏&#xff1a;C 本文目录 什么是栈帧 在调试中观察 总结 什么是栈帧 那我们先来看看什么是栈&#xff1a; 栈(stack)是限定仅在表尾进行插入或者删除的线性表。栈是一种数据结构&#xff0c;它按照后进先出的原则存储…

C进阶:字符函数和内存函数

字符串函数和内存函数字符函数和内存函数字符函数求字符串长度strlen长度不受限制的字符串函数strcpystrcatstrcmp长度受限制的字符串函数strncpystrncatstrncmp字符串查找strstrstrtok错误信息报告strerror字符函数&#xff1a;内存函数memcpymemmovememcmpmemset库函数的模拟…

2023年网络安全比赛--跨站脚本攻击中职组(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 1.访问服务器网站目录1,根据页面信息完成条件,将获取到弹框信息作为flag提交; 2.访问服务器网站目录2,根据页面信息完成条件,将获取到弹框信息作为flag提交; 3.访问服务器网站目录…

javaWeb jsp

概念&#xff1a; Java Server Pages&#xff0c;Java服务端页面。 其中既可以定义 HTML、JS、CSS等静态内容&#xff0c;还可以定义 Java代码的动态内容 JSP HTML Java。最终解析为一个servlet输出给前端。 jsp实践 <dependency> <groupId>javax.servlet…

ASP.NET Core 3.1系列(24)——依赖注入框架之Autofac

1、前言 前面的博客已经介绍过ASP.NET Core中内置IoC容器的使用方法。对于规模较小的项目来说&#xff0c;内置容器完全够用。但在实际开发业务中&#xff0c;一般更推荐开发者使用Autofac作为系统的IoC容器。相较于微软提供的内置容器&#xff0c;Autofac无论是在功能性还是灵…

Python Socket联机自动匹配双人五子棋(含登录注册系统与界面,数据库连接,可作结课作业,可用于学习)

1、前言 首先&#xff0c;关于源码的获取&#xff0c;本人提供了三种方式&#xff1a; 直接从文章里面CtrlC&#xff0c;CtrlV&#xff0c;然后按照我已给的文件结构搞一下即可&#xff1b;通过积分下载上传到CSDN的资源&#xff1b;点开本人的主页&#xff0c;点击“查看详细…

C语言-字符串+内存函数介绍与模拟实现(10)

目录 思维导图&#xff1a; 字符串与内存函数 求字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数介绍 strncpy strncat strncmp 字符串查找 strstr strtok 错误信息报告 strerror perror 字符操作 内存操作函数 …

Linux之select、poll、epoll讲解

文章目录1 select、poll、epoll1.1 引言1.2 IO和Linux内核发展1.2.1 整体概述1.2.2 阻塞IO1.2.3 非阻塞IO1.2.4 select1.2.5 共享空间1.2.6 零拷贝1.3 select1.3.1 简介1.3.2 select缺点1.4 poll介绍1.4.1 与select差别1.4.2 poll缺点1.5 epoll1.5.1 epoll相关函数1.5.2 epoll优…

详解floor函数、ceil函数和round函数

1.floor函数 功能&#xff1a;把一个小数向下取整 即就是如果数是2.2 &#xff0c;那向下取整的结果就为2.000000 原型&#xff1a;double floor(doube x); 参数解释&#xff1a; x:是需要计算的数 返回值&#xff1a; 成功&#xff1a;返回一个double类型的数&#xff0c;此数…

6-星际密码

题目 星际战争开展了100年之后&#xff0c;NowCoder终于破译了外星人的密码&#xff01;他们的密码是一串整数&#xff0c;通过一张表里的信息映射成最终4位密码。表的规则是&#xff1a;n对应的值是矩阵X的n次方的左上角&#xff0c;如果这个数不足4位则用0填充&#xff0c;如…