本篇文章来介绍下dockerfile

server/2024/11/27 19:40:12/

        我开始玩儿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.ppmy.cn/server/137777.html

相关文章

kkfileview4.2.1 LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz

问题 java.lang.IllegalStateException: officeHome doesnt exist or is not a directory: optlibreoffice7.1 安装 kkfileview4.2.1 LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz 测试 全过程脚本 [zengwenfenglocalhost Desktop]$ pwd /home/zengwenfeng/Desktop [zengwe…

服务器被攻击黑洞后如何自救

当服务器遭受大规模的 DDoS 攻击时,ISP(互联网服务提供商)可能会将服务器的 IP 地址加入黑洞路由(Blackhole Routing),以阻止攻击流量进入网络,保护整个网络的稳定。然而,这也会导致…

es拼音分词器(仅供自己参考)

github地址:https://github.com/infinilabs/analysis-pinyin(各种版本,对接es版本) 拼音分词器存在的问题: 1、是直接将每个字的拼音返回和一段话的拼音首字母返回,不能很好的分词。 2、不会保留中文&am…

无桥图腾柱PFC -- 基于平均电流的双闭环仿真

一、无桥图腾柱PFC基于平均电流的双闭环MATLAB仿真 1.MATLAB仿真模型 1.1.仿真模型图 主电路: 双闭环模型: 1.2.器件参数 输入电压: 电感: 输出电容: 负载电阻: 开关选择: 极性检测模块&…

爬虫笔记22——当当网图书详情页静、动态数据爬取

当当网动态数据爬取 静态数据爬取动态数据爬取接口参数的获取 静态数据爬取 进入图书详情,这里的图书数据信息比如标题、价格、图片都是非结构化数据,可以使用xpath语法提取。是很简单的数据采集了,就不细说了。 动态数据爬取 滑到下面这里的…

112. gui辅助调节光源阴影

光源阴影范围,也可以通过GUI界面可视化调节,这样更形象。 阴影范围可视化调节 根据工厂尺寸数量级预先设置.shadow.camera,然后通过GUI调试选择一个合适的值.shadow.camera的位置通过光源的位置调试。.shadow.camera参数改变后,注…

label数据(或自定义数据集)转imagenet(用于mmclassification)

理论上用于分类的图像一般都不需要用labelme来标注的,笔者是因为刚好手上有这么一组数据,所以就顺带处理了。labelme标注完的数据每张还包含了一个json文件,这个在分类任务中用不上。具体的mmclassification使用方法在我的另一篇文章里有&…

基于centos7.9搭建MariaDB10.5高可用集群

MariaDB-HA 环境初始化安装MariaDB配置集群 基于centos7.9搭建MariaDB10.5数据库高可用集群,对标mysql5.7 节点IPnode1192.168.200.101node2192.168.200.102node3192.168.200.103 环境初始化 #!/bin/bash# 定义节点信息 NODES("192.168.200.101 node1"…