本篇文章来介绍下dockerfile

        我开始玩儿docker的时候,都是通过docker pull命令把基础镜像拉取到本地,然后在跑成容器,在操作容器,做一些自己的事情,比如安装个java环境什么的,直到我接触到了dockerfile,我发现dockerfile真是个好东西呀。

        dockerfile是用来干什么的呢,简单理解,就是用来描述你需要一个什么样的镜像的,话不多说我直接举个例子,我的例子是需要java、es、es插件和我自己的一个项目

# 基础镜像
FROM centos:7# 创建 es 用户
RUN useradd -m es# 创建文件件
RUN mkdir -p /usr/local/java
RUN mkdir -p /usr/local/elastic/es_plugin
RUN mkdir -p /usr/local/project# 复制 Java 1.8 安装包
COPY jdk-8u411-linux-x64.tar.gz /tmp/
RUN tar -xzf /tmp/jdk-8u411-linux-x64.tar.gz -C /usr/local/java
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_411
ENV PATH=${JAVA_HOME}/bin:${PATH}# 检查环境变量
RUN echo $JAVA_HOME
RUN ls $JAVA_HOME# 复制 Elasticsearch 6.8.13 安装包
COPY elasticsearch-6.8.13.tar.gz /tmp/
RUN tar -xzf /tmp/elasticsearch-6.8.13.tar.gz -C /usr/local/elastic
ENV ES_HOME=/usr/local/elastic/elasticsearch-6.8.13
RUN ln -s $ES_HOME /usr/share/elasticsearch# 配置 Elasticsearch
RUN rm -rf $ES_HOME/config/elasticsearch.yml
COPY elasticsearch.yml $ES_HOME/config/elasticsearch.yml# 安装 ik 插件
COPY elasticsearch-analysis-ik-6.8.13.zip /usr/local/elastic/es_plugin
RUN $ES_HOME/bin/elasticsearch-plugin install --batch file:///usr/local/elastic/es_plugin/elasticsearch-analysis-ik-6.8.13.zip# 安装 score 插件
COPY expert-score-scripts.zip /usr/local/elastic/es_plugin
RUN $ES_HOME/bin/elasticsearch-plugin install --batch file:///usr/local/elastic/es_plugin/expert-score-scripts.zip# 拷贝启动脚本
COPY es-start.sh /usr/local/elastic/
# 修改格式
RUN sed -i 's/\r//' /usr/local/elastic/*.sh
# 增加执行权限
RUN chmod +x /usr/local/elastic/es-start.sh# 修改所属用户
RUN chown -R es:es $ES_HOME
Run chown -R es:es /usr/local/elastic# 安装 libgomp.so 动态链接库
RUN yum install -y libgomp# 安装 unzip 工具
RUN yum install -y unzip# 暴露 Elasticsearch 和 JAR 包端口
EXPOSE 9200 9300 8080

        dockerfile写法跟shell脚本很相似,它执行起来是这个样子的
在这里插入图片描述
        这样就会生成一个镜像,在启动镜像,看看你需要的东西是不是已经有了,太奇妙了。
        如果你对docker命令还不太熟悉,可以参考下这个链接:https://blog.csdn.net/dydyswr/article/details/143316174

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

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

相关文章

Java识别图片或扫描PDF中的文字

目录 使用工具 Java识别图片中的文字 Java识别扫描PDF中的文字 注意事项 图片和扫描文件通常以非文本格式存在,这使得其中的文字信息难以直接编辑、搜索或复制。为了解决这个问题,光学字符识别(OCR)技术应运而生。OCR通过分析…

view design之table自定义单元格模版

View Design之table自定义单元格模版 在 columns 的某列声明 slot 后&#xff0c;就可以在 Table 的 slot 中使用参数。 slot 的参数有 3 个&#xff1a;当前行数据 row&#xff0c;当前列数据 column&#xff0c;当前行序号 index。 完整示例 <template><Table …

【Leecode】Leecode刷题之路第35天之搜索插入位置

题目出处 35-搜索插入位置-题目出处 题目描述 个人解法 思路&#xff1a; 1.依次遍历数组&#xff0c;看目标值是否在数组中 2.如果不在&#xff0c;将目标值插入数组&#xff08;涉及到数组移动、扩容&#xff09;&#xff0c;返回下标代码示例&#xff1a;&#xff08;Java…

深入解析JavaScript 中的 Object.defineProperty() 与 Object.defineProperties() 方法

目录 前言1. Object.defineProperty()2. Object.defineProperties() 前言 写在前面&#xff0c;基本的功能与差异如下&#xff1a; Object.defineProperty()&#xff1a; 定义单个属性&#xff0c;接受三个参数&#xff08;对象、属性名、描述符&#xff09; Object.definePr…

大模型提示词简介 举例

目录 大模型提示词&#xff08;Prompt&#xff09;详解 1. 什么是AI提示词&#xff08;Prompt&#xff09; 2. 为什么提示词对AI结果的影响很大 3. 提示词构成 4. 提示词举例 示例1&#xff1a;生成新闻标题 示例2&#xff1a;创作诗歌 示例3&#xff1a;撰写电子邮件 …

【Java笔记】0-为什么学习Java

呃&#xff0c;当然是为了找个Java的开发工作 当然是由于Java使用的人多和它天生自带的优点了~ 主要优点有以下几点&#xff1a; 简单性 C语法纯净版&#xff0c;没有头文件、指针运算、不用分配内存 面向对象 重点放在对象与其接口上&#xff0c;接近人的逻辑 可移植性 …

Nop平台与APIJSON的功能对比

APIJSON是由腾讯的工程师研发的一款流传甚广的零代码接口与文档ORM库&#xff0c;github的star数高达16.8K。这个库实现了一种基于JSON的轻量级数据交换格式&#xff0c;提供万能通用接口&#xff0c;无需编码即可实现增删改查、跨库连表、嵌套子查询等。APIJSON的生态相当完整…

CAN物理层(ISO 11898-2 2024)

一、说明 CAN(Controller area network)中文名称是控制器局域网,是用于解决汽车众多控制部件之间的数据交换而开发的一种串行数据通信总线,可以使用双绞线来传输信号,由德国博世公司在20世纪80年代专门为汽车行业开发。 ISO 11898-2 2024版相对于2016版,主要由以下更新…

VQGAN(2021-06:Taming Transformers for High-Resolution Image Synthesis)

论文&#xff1a;Taming Transformers for High-Resolution Image Synthesis 1. 背景介绍 2022年中旬&#xff0c;以扩散模型为核心的图像生成模型将AI绘画带入了大众的视野。实际上&#xff0c;在更早的一年之前&#xff0c;就有了一个能根据文字生成高清图片的模型——VQGAN…

HBuilder X 中Vue.js基础使用4->表单输入绑定(三)

表单绑定是实现动态数据双向绑定的重要部分&#xff0c;它让开发者可以轻松地管理和响应用户输入。本文将详细介绍如何在Vue 3中利用v-model指令以及一些特定修饰符来处理不同类型的表单输入。 v-model双向数据绑定 Vue的 v-model 指令提供了双向绑定的功能&#xff0c;key在…

「虚拟现实中的心理咨询:探索心灵世界的新方法」

内容概要 当我们想到虚拟现实时&#xff0c;很多人会联想到游戏或娱乐&#xff0c;但如今其在心理咨询领域的应用正在逐渐崭露头角。传统的心理咨询方式常常局限在咨询室内&#xff0c;面临着空间和情感隔阂的问题。然而&#xff0c;沉浸式环境的出现&#xff0c;使得治疗者能…

2024最新的开源博客系统:vue3.x+SpringBoot 3.x 前后端分离

本文转载自&#xff1a;https://fangcaicoding.cn/article/54 大家好&#xff01;我是方才&#xff0c;目前是8人后端研发团队的负责人&#xff0c;拥有6年后端经验&3年团队管理经验&#xff0c;截止目前面试过近200位候选人&#xff0c;主导过单表上10亿、累计上100亿数据…

JavaScript 进阶 - 第1天(黑马笔记)

JavaScript 进阶 - 第1天 目录 JavaScript 进阶 - 第1天 作用域 局部作用域 函数作用域 块作用域 全局作用域 作用域链 闭包 变量提升 函数 函数提升 函数参数 默认值 动态参数 剩余参数 箭头函数 箭头函数参数 箭头函数 this 解构赋值 数组解构 对象解构…

MATLAB车道检测与跟踪

读了车道检测这个论文&#xff0c;我理解了利用matlab对车道识别算法进行仿真研究&#xff0c;从仿真的结果中提出具有一定实时性鲁棒性的识别方法。车道检测是智能车辆发展的智能因素。近年来对这项目的研究都是针对特定的环境和道路状况给出了不同的解决方案。近年来,自主驾驶…

pdf转为txt文本格式并使用base64加密输出数据

第一步&#xff0c;pom.xml中引入jar包 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version></dependency> 第二步 package org.example.test.example.changefile;…

C++核心编程和桌面应用开发 第十七天(set和multiset容器 pair map和multimap容器)

目录 1.set和multiset容器 1.1构造和赋值 1.2交换和大小 1.3插入和删除 1.4统计和查找 1.5pair对组 1.6set和multiset的区别 1.7指定内置数据类型排序规则 1.8指定自定义数据类型排序规则 2.map和multimap容器 2.1构造和赋值 2.2交换和大小 2.3插入和删除 2.4统计…

【vue】13.深入理解递归组件

在Vue.js的开发实践中&#xff0c;组件是构建界面的核心概念。而递归组件则是一种特殊的组件&#xff0c;它能够自己调用自己&#xff0c;从而创造出无限嵌套的界面结构。本文将带你了解递归组件的应用&#xff0c;以及如何在Vue中实现和使用它。 一.什么是递归组件&#xff1f…

【Python爬虫实战】网络爬虫完整指南:网络协议OSI模型

网络爬虫完整指南&#xff1a;从协议基础到实践应用 什么是网络协议&#xff1f; **网络协议&#xff08;Network Protocol&#xff09;**是指计算机网络中设备和设备之间进行通信的规则和约定。它定义了数据传输的格式、顺序、传输方法和错误处理机制&#xff0c;使不同设备和…

01.如何用DDD重构老项目

学习资料来源&#xff1a;DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 动机DDD与重构实践重构? 重写从一开始就采用DDD重构步骤1. 添加领域模块2.分离出有价值的代码3.迁移到领域模块4.重复2,3 动机 …

OSI公布OSAID 1.0版 “开源人工智能”首次被定义

在2024年ALL THINGS OPEN大会上&#xff0c;Open Source Initiative (OSI) 正式发布了开源人工智能定义&#xff08;OSAID&#xff09;1.0版本&#xff0c;标志着全球首个开源AI标准的诞生。OSAID将作为衡量人工智能系统是否符合“开源人工智能”标准的依据&#xff0c;为社区主…