发布时间:2026/8/21 14:52:35
4. docker镜像、Dockerfile docker镜像、Dockerfile一、docker镜像1、镜像介绍2、镜像核心技术二、Dockerfile定制镜像1、Dockerfile使用流程1.1 编写Dockerfile1.2、构建镜像1.3 创建容器测试镜像定制操作2、Dockerfile常用指令三、Dockerfile应用1、定制nginx镜像2、定制spring boot类型项目镜像四、jenkins自动发布业务容器1、上传项目代码2、安装配置jenkins2.1 创建容器运行jenkins2.2 安装插件2.3 配置gitee连接2.4 配置git工具2.5 配置maven编译工具2.6 配置jdk2.7 添加业务服务器3、创建任务配置业务发布流程3.1 创建任务一、docker镜像1、镜像介绍分层的文件系统优势节省空间、速度快、重用只读创建容器时会在镜像上面添加一个可写层2、镜像核心技术COW copy on write 写时复制Union fs 联合文件系统overlay2device mapper[rootmartin-host ~]# docker infoClient: Docker Engine - Community Version:26.1.4 Context: default Debug Mode:falsePlugins: buildx: Docker Buildx(Docker Inc.)Version: v0.14.1 Path: /usr/libexec/docker/cli-plugins/docker-buildx compose: Docker Compose(Docker Inc.)Version: v2.27.1 Path: /usr/libexec/docker/cli-plugins/docker-compose Server: Containers:1Running:0Paused:0Stopped:1Images:4Server Version:26.1.4 Storage Driver: overlay2二、Dockerfile定制镜像1、Dockerfile使用流程1.1 编写Dockerfile[rootmartin-host testDockerfile]# lsCentOS-Base.repo Dockerfile[rootmartin-host testDockerfile]# cat DockerfileFROM centos:7 COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo RUN yuminstall-ynet-tools1.2、构建镜像[rootmartin-host testDockerfile]# docker build -t centos:v1 ./1.3 创建容器测试镜像定制操作[rootmartin-host testDockerfile]# docker image lsREPOSITORY TAG IMAGE ID CREATED SIZE centos v1 3e88e2fdb6df56seconds ago 461MB redis latest 7614ae9453d12years ago 113MB centos7eeb6ee3f44bd2years ago 204MB nginx1.18c2c45d5060853years ago 133MB[rootmartin-host testDockerfile]# docker run -tid --nametest1 centos:v1949b757d2b35b4d115a88f69cc8f1d704b6e6fcd34a64d4ecbfc28422e7530aa[rootmartin-host testDockerfile]# docker exec -ti test1 bash[root949b757d2b35 /]# ifconfigeth0:flags4163UP,BROADCAST,RUNNING,MULTICASTmtu1472inet10.88.7.2 netmask255.255.255.0 broadcast10.88.7.255 ether 02:42:0a:58:07:02 txqueuelen0(Ethernet)RX packets8bytes656(656.0B)2、Dockerfile常用指令FROM指定基础镜像镜像不存在构建镜像时自动下载镜像建议尽量选择小容量的镜像 / debian/ ubuntuFROM 镜像名称RUN指定定制命令RUN 命令命令命令CMD定义容器创建时自动执行的命令注意事项:1、前台启动服务的指令2、创建容器时不要自己指定命令会覆盖CMD3、一个Dockerfile中只能有一条CMD指令CMD httpd-DFOREGROUND CMD[httpd,-D,FOREGROUND]// 推荐ENTRYPOINT定义容器创建时自动执行的命令不会被覆盖ENTRYPOINT[httpd,-D,FOREGROUND]COPY复制文件注意只能复制本地文件COPY 源文件 目的文件ADD复制文件注意1、支持本地文件、URL、压缩包会自动解压ADD 源文件 目的文件ADD file01 /tmp/file01 ADD http://nginx.org/download/nginx-1.27.0.tar.gz /tmp ADD jdk-8u91-linux-x64.tar.gz /tmpEXPOSE说明容器服务端口注意1、-P随机发布端口时Dockerfile中必须有EXPOSE指令EXPOSE 端口 端口VOLUME定义持久化存储的目录创建容器时不使用-v明确指定目录会自动生成匿名卷VOLUME 目录ENV定义环境变量ENV 变量名称 值WORKDIR定义当前目录WORKDIR 目录USER指定容器运行的用户USER用户名三、Dockerfile应用1、定制nginx镜像FROM centos:7 COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo RUN yuminstall-ygcc openssl-devel zlib-devel pcre-develmakeADD https://nginx.org/download/nginx-1.27.3.tar.gz /tmp RUNtarxf /tmp/nginx-1.27.3.tar.gz-C/tmpcd/tmp/nginx-1.27.3./configure--prefix/usr/local/nginxmakemakeinstallrm-rf/tmp/nginx* CMD[/usr/local/nginx/sbin/nginx,-g,daemon off;]EXPOSE80/tcp2、定制spring boot类型项目镜像FROM adoptopenjdk/openjdk8:latest COPY statics-1.0-SNAPSHOT.jar /static.jar CMD[java,-jar,/static.jar]EXPOSE8081/tcp四、jenkins自动发布业务容器1、上传项目代码2、安装配置jenkins2.1 创建容器运行jenkins[rootmartin-host ~]# mkdir /jenkins/home -p[rootmartin-host ~]# chmod ow /jenkins/home/[rootmartin-host ~]# docker run -tid --namejenkins --hostnamejenkins --restartalways -v /jenkins/home/:/var/jenkins_home -p 9000:8080 -p 50000:50000 jenkins/jenkinsc339f5e6f90900fabdfa9be5ea6669b94d2d537aa6d6de40bf927dfdf27294c9[rootmartin-host ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c339f5e6f909 jenkins/jenkins/usr/bin/tini -- /u…3seconds ago Up3seconds0.0.0.0:50000-50000/tcp, :::50000-50000/tcp,0.0.0.0:9000-8080/tcp, :::9000-8080/tcp jenkins2.2 安装插件giteeMaven IntergationPublish Over SSH2.3 配置gitee连接2.4 配置git工具2.5 配置maven编译工具2.6 配置jdk[rootmartin-host ~]# tar xf jdk-15.0.2_linux-x64_bin.tar.gz -C /jenkins/home/2.7 添加业务服务器[rootmartin-host ~]# docker exec -ti jenkins bashjenkinsjenkins:/$ jenkinsjenkins:/$ ssh-keygen-trsa jenkinsjenkins:/$ ssh-copy-id root192.168.140.103、创建任务配置业务发布流程3.1 创建任务命令参考dockerrmi demo:1.0dockerrm-fdemocd/test/democateofDockerfileFROM adoptopenjdk/openjdk8:latest COPY *.jar /demo.jar CMD [ java, -jar, /demo.jar ] eofdockerbuild-tdemo:1.0 ./dockerrun-tid--namedemo--hostnamedemo--restartalways-p8080:8080 demo:1.0

相关新闻

2026/8/21 14:52:35

5. harbor镜像仓库

harbor镜像仓库一、镜像仓库1、类型2、构建私有仓库的方案二、部署harbor仓库(单机版)1、安装docker(略)2、安装docker-compose工具3、安装harbor4、生成harbor需要的证书、密钥(V3版本证书)4.1 创建CA4.2 创建harbor仓库需要的证书5、编辑harbor配置文件6、启动harbor三、harb…

2026/8/21 14:52:34

魔兽3从60帧到300帧:WarcraftHelper实战指南

魔兽3从60帧到300帧:WarcraftHelper实战指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽3的60帧上限并不写在渲染管线里&#xff…

2026/8/21 16:17:48

AI 智能空气炸锅智能功率 MOSFET 完整选型方案

2026年随着 AI 技术在智能烹饪设备中的深度渗透(如精准温控、智能菜单、能量优化),空气炸锅对功率 MOSFET 提出更高要求:高效率、低热耗、快速响应。微碧半导体(VBsemi)基于 Trench 和 SGT 工艺&#xff0c…

2026/8/21 16:17:48

QHotkey源码架构深度剖析:PIMPL模式与单例分发机制揭秘

QHotkey源码架构深度剖析:PIMPL模式与单例分发机制揭秘 【免费下载链接】QHotkey A global shortcut/hotkey for Desktop Qt-Applications 项目地址: https://gitcode.com/gh_mirrors/qh/QHotkey QHotkey 是一个专为桌面 Qt 应用设计的全局热键(G…

2026/8/21 16:17:48

每周挤12小时上课 聊聊中英双语授课的国内EMBA

一、在职读EMBA怎么平衡工作学习时间?对多数企业高管而言,选择中英双语授课的国内EMBA的核心诉求之一,是在不中断日常管理工作的前提下,兼顾语言能力提升与系统化商科知识补充,香港科技大学EMBA中英双语课程采用每月集…

2026/8/21 13:13:49

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/20 20:11:18

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 0:03:13

Linux命令-uucico(UUCP传输程序)

Linux命令-uucico(UUCP传输程序) 🔰简介UUCP 体系简介 📖语法⚙️选项配置文件 💡示例示例 1:基本传输操作示例 2:主模式与从模式示例 3:调试与故障排查示例 4:UUCP 配置…

2026/8/21 0:03:13

Linux命令-uupick(UUCP文件接收工具)

Linux命令-uupick(UUCP文件接收工具)🔰简介uupick 在 UUCP 传输链中的位置📖语法⚙️选项交互命令💡示例示例 1:基本接收操作示例 2:仅处理来自特定系统的文件示例 3:完整 UUCP 文件…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/21 0:31:27

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…