docker镜像制作

news/2024/10/21 7:29:50/

文章目录

  • 制作Dockerfile文件常用的指令
  • 前期准备工作
  • 开始制作镜像
  • 执行docker命令生成镜像
  • 根据创建的镜像生成容器
  • 访问项目

制作Dockerfile文件常用的指令

  • FROM:指定构建使用的基础镜像,FROM命令必须写在其他的指令前
  • MAINTAINER:用于为Dockerfile署名
  • ADD:复制文件并解压到镜像中的指定位置
  • ENV:设置镜像中的环境变量
  • COPY:类似于ADD,将CentOS7中的文件赋值到镜像中的某个位置
  • RUN:普通命令,后面紧跟具体的操作指令
  • EXPOSE:声明容器对外暴露的端口号
  • CMD:指定容器启动时执行的一条命令,如果指定了多条CMD命令,则只有最后一条会被执行,CMD会被 docker run之后的参数替换

前期准备工作

1、在CentOS7中使用docker拉取centos7镜像,作为制作镜像的基础镜像

在这里插入图片描述

2、保证CentOS7中已经有了jdk8和tomcat和项目war包
在这里插入图片描述

开始制作镜像

1、创建一个Dockerfile文件无后缀名
在这里插入图片描述

2、在Dockerfile文件内写入以下内容:

#1.指定基础镜像
FROM centos:7#2.署名,指定制作镜像的作者
MAINTAINER wang#3、复制CentOS7中jdk8和tomcat到镜像/usr/local目录中,并且解压缩
#jdk和tomcat在root目录下,且toc/jdk1.8.0_131-linux-x64.tar.gz是相对路径,在下面生成镜像步骤要在root目录下执行指令
ADD toc/jdk1.8.0_131-linux-x64.tar.gz /usr/local
ADD toc/apache-tomcat-8.5.43.tar.gz /usr/local#4.修改jdk和tomcat目录名
RUN mv /usr/local/jdk1.8.0_131 /usr/local/jdk
RUN mv /usr/local/apache-tomcat-8.5.43 /usr/local/tomcat#5.将项目复制到镜像中的tomcat目录下的webapps目录中
COPY toc/web.war /usr/local/tomcat/webapps#6.设置工作访问目录,即执行docker exec -it tom4 /bin/bash 命令进入容器内部在哪个目录下,
WORKDIR /usr/local#环境设置
#时区
ENV TIME_ZONE Asia/Shanghai#字符集
ENV LANG zh_CN.UTF-8#jdk与tomcat的环境变量
ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CATALINA_HOME /usr/local/tomcat
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin#7.暴露的端口号
EXPOSE 8080#8.启动容器时执行的命令
CMD ["catalina.sh", "run"]

执行docker命令生成镜像

首先查看Dockerfile文件的位置:
在这里插入图片描述
执行docker命令:

#docker build [选项]  -f:DockerFile路径 -t :自定义镜像名称
/]# docker build -f dockerfile/Dockerfile -t zhangsantom:1.0 .

在这里插入图片描述

在这里插入图片描述

根据创建的镜像生成容器

执行创建容器docker命令

/]docker run --name myimagetom -dit -p 8080:8080 zhangsantom:1.0

在这里插入图片描述
查看导进镜像里的项目war包
在这里插入图片描述

访问项目

在这里插入图片描述


http://www.ppmy.cn/news/61344.html

相关文章

设计模式——工厂模式(简单工厂、工厂方法、抽象工厂)

是什么? 工厂模式的目的是将创建对象的具体过程隐藏起来,从而达到更高的灵活性 工厂模式分为:简单工厂模式、工厂方法模式、抽象工厂模式; 为什么? 在Java中,万物皆是对象,我们在使用的时候…

Flask的CBV写法与源码分析

CBV 写法 from flask import Flask from flask.views import MethodViewapp Flask(__name__)class Index(MethodView):def get(self):return getdef post(self):return postapp.add_url_rule(/index,view_funcIndex.as_view(nameindex))if __name__ __main__:app.run()注意&…

libfacedetection 人脸检测库 检测速度慢的问题

目录 一、libfacedetection 性能介绍 英特尔CPU 使用AVX2指令集 使用AVX512指令集 嵌入式设备 二、加速检测速度 libfacedetetion的前向推理速度很快的原因 使用axv2加速指令 一、libfacedetection 性能介绍 在上一篇文章中,我发现使用摄像头检测,构…

华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包

华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包-内有教程 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的…

Kettle安装与使用

一、Kettle简介 Kettle最早是一个开源的ETL(Extract-Transform-Load的缩写)工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。后来Kettle重命名为Pentaho Data Integration 。它由Java开发,…

基于改进的离散PSO算法的FJSP的研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

学计算机的要不要考研?校招工作不喜欢怎么办?怎样才可以年薪百万?

昨天有粉丝私信我 学的计算机 说他大四马上就要毕业了 然后学校分配的这个工作不是很喜欢 问要不要换个方向 然后身边还有一些同学去考研了 说他要不要考研 等等比较典型的一些问题 所以我总结了一下有三个问题 第一个问题 就学计算机的现在工作不好找 要不要考研 第二个问题就…

BetaFlight统一硬件配置文件研读

BetaFlight统一硬件配置文件研读 1. 源由2. 分析2.1 硬件SOC2.2 统一配置文件2.3 cli命令2.4 板级配置主要命令2.4.1 board_name2.4.2 manufacturer_id2.4.3 resource2.4.4 timer2.4.5 dma2.4.6 serial2.4.7 set2.4.8 feature 3. 实例研读3.1 C遗留配置3.2 BoardName - AOCODAR…