当前位置: 首页 > news >正文

本篇文章来介绍下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.mrgr.cn/news/61560.html

相关文章:

  • ABC335(E-G)
  • Java知识巩固(十二)
  • 面向对象进阶(下)(JAVA笔记第二十五期)
  • Adam优化器算法详解
  • Python——发送HTTP请求
  • Vue基础(5)
  • LeetCode 热题 100 回顾2
  • Golang | Leetcode Golang题解之第519题随机翻转矩阵
  • 速盾:海外高防CDN有哪些优势?
  • SpringBoot篇(自动装配原理)
  • 〈壮志凌云:独行侠〉中的超高音速战机
  • Android Studio 无法查看Kotlin源码的解决办法
  • 了解一下,RN中怎么加载 threejs的
  • openEuler 系统中单引号、双引号及转义字符的应用
  • Topaz Video AI for Mac 视频无损放大软件安装教程【保姆级,操作简单轻松上手】
  • 如何解决 Ansys Electronics Desktop 中的 HPC Pack 许可错误
  • C++引用的属性
  • 如何在 CentOS VPS 上设置系统监控的邮件警报
  • 嫉妒经济学:揭秘消费行为背后的情绪驱动力
  • LeetCode Hot 100:技巧
  • WPF+MVVM案例实战(十二)- 3D数字翻牌计时实现
  • 信息安全数学基础(34)正规子群和商群
  • 加强版 第四节联通组件分析与演示
  • netframework安装不上怎么办
  • LeetCode 热题 100 回顾8
  • Java——lambda表达式和StreamAPI