自定义镜像【项目部署】

镜像就是包含了应用程序,程序运行的系统函数库,运行配置等文件包,构建镜像的过程其实就是把相应文件打包的过程

1)常用指令:

Dockerfile就是一个文本文件,其中包含一个个的指令,用指令来说明要执行的操作来构建镜像,将来Docker可以根据Dockerfile帮助我们构建镜像

指令说明示例
FROM指定基础镜像FROM centos:7
ENV设置环境变量,可以在后面指令使用ENV key value
COPY拷贝本地文件到镜像指定的目录COPY .jrell.tar.gz /tmp
RUN执行Linux的shell命令,一般是安装过程的命令RUN tar -zxvf /tmp/jrell.tar.gz && EXPORTS path=/tmp/jrell:$path
EXPOSE指定容器运行时监听的端口,给镜像使用这观看EXPORT 8080
ENTRYPOINT镜像中应用的启动命令,容器运行时调用ENTRYPOINT java -jar xx.jar

2)编写Dockerfile文件:

基于系统编写基础的Dockerfile镜像文件:

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录、容器内时区
ENV JAVA DIR=/usr/local
# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/COPy ./docker-demo.jar /tmp/app.jar
# 安装JDK
RUN cd $JAVA_DIR |&& tar -xf ./jdk8.tar.gz&& mv ./jdkl.8.0_144 ./java8
# 配置环境变量
ENV JAVA HOME=$JAVA DIR/java8ENV PATH=SPATH:SJAVA HOME/bin
# 暴露端口
EXPOSE 端口号
# 入口,java项目的启动命令
ENTRYPOINT ["java","-jar","/app.jar"]

基于jdk编写Dockerfile镜像文件:

# 基础镜像
FROM openjdk:11.0-jre-buster
# 拷贝jar包
COPY docker-demo.jar /app.jar
# 暴露端口
EXPOSE 端口号
# 入口
ENTRYPOINT ["java","-jar","/app.jar"]

3)构建镜像:

编写好Dockerfile,就可以使用命令构建镜像了:将Dockerfile文件和对应的java.tar包上传到服务器执行一下命令创建镜像

docker build -t 镜像名:镜像版本 Dockerfile所在目录
  • -t :后跟镜像名,格式是repository:tag的格式,不指定tag时,默认latest

  • . :是指定dockerfile所在的文件目录,如果即使当前目录,Dockerfile所在目录就使用.表示

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外贸路上遇到的那些仿佛天上掉馅饼的事情

有时候不得不感叹,在这个时代,骗子都在绞尽脑汁地满足我们所有的需求,不需要我们任何的付出就可以得到高额的佣金,想一想,真是一件美事,不信,请看一下下边的邮件内容吧!:…

【LeetCode: 889. 根据前序和后序遍历构造二叉树 + DFS】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

leecode1253 | 重构两行二进制矩阵

题也好理解 给定两个整数upper、lower,一个数组 colsum,其中upper 是二维矩阵中上面一行的所有元素之和,注意这个二维 2*n 的矩阵是由二进制数组成(所以里面的元素由0、1、2组成)同理,lower 是下面一行的所…

DataX - 全量数据同步工具

前言 今天是2024-2-21,农历正月十二,相信今天开始是新的阶段,尽管它不是新的周一、某月一日、某年第一天,尽管我是一个很讲究仪式感的人。新年刚过去 12 天,再过 3 天就开学咯,开学之后我的大学时光就进入了…

[corCTF 2022] CoRJail: From Null Byte Overflow To Docker Escape

前言 题目来源:竞赛官网 – 建议这里下载,文件系统/带符号的 vmlinux 给了 参考 [corCTF 2022] CoRJail: From Null Byte Overflow To Docker Escape Exploiting poll_list Objects In The Linux Kernel – 原作者文章,poll_list 利用方式…

TestNG与ExtentReport单元测试导出报告文档

TestNG与ExtentReport集成 目录 1 通过实现ITestListener的方法添加Reporter log 1.1 MyTestListener设置 1.2 输出结果 2 TestNG与ExtentReporter集成 2.1 项目结构 2.2 MyExtentReportListener设置 2.3 单多Suite、Test组合测试 2.3.1 单Suite单Test 2.3…

【selenium】八大元素定位方式|xpath css id name...

目录 一、基础元素定位 二、cssSelector元素定位——通过元素属性定位 三、xpath元素定位——通过路径 1 、xpath绝对定位 (用的不多) 缺点:一旦页面结构发生变化(比如重新设计时,路径少两节)&#x…

【PX4学习笔记】04.QGC地面站的使用

目录 文章目录 目录PX4代码烧入PX4固件代码的烧入方式1PX4固件代码的烧入方式2 QGC地面站的基础使用连接地面站的方式查看关键的硬件信息 QGC地面站的Application Settings模块Application Settings模块-常规界面单位其他设置数据持久化飞机中的数传日志飞行视图计划视图自动连…

【C++练级之路】【Lv.8】【STL】list类的模拟实现

快乐的流畅:个人主页 个人专栏:《C语言》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 引言一、结点二、迭代器2.1 成员变量与默认成员函数2.2 operator*2.3 operator->2.4 operator2.5 operator- …

Qt_快速安装指南

下载Qt在线安装程序(不仔细介绍)注册Qt账号(不仔细介绍)使用快速运行的命令,按照指定的下载地址下载 在Qt指定目录打开cmd命令窗口.\eqt-unified-windows-x86-4.0.1-1-online. exe --mirror https://mirrors.ustc.edu.…

js设计模式:依赖注入模式

作用: 在对象外部完成两个对象的注入绑定等操作 这样可以将代码解耦,方便维护和扩展 vue中使用use注册其他插件就是在外部创建依赖关系的 示例: class App{constructor(appName,appFun){this.appName appNamethis.appFun appFun}}class Phone{constructor(app) {this.nam…

Python:Keyboard Interrupt - 当代码遇到“Ctrl+C“时发生了什么?

Python:Keyboard Interrupt - 当代码遇到"CtrlC"时发生了什么? 🌈 个人主页:高斯小哥 🔥 高质量专栏:【Matplotlib之旅:零基础精通数据可视化】 💡 创作高质量博文&#x…