龙空技术网

dockerfile制作镜像

helloworld 105

前言:

此时同学们对“centos操作系统镜像”都比较讲究,看官们都想要剖析一些“centos操作系统镜像”的相关知识。那么小编同时在网摘上搜集了一些关于“centos操作系统镜像””的相关知识,希望兄弟们能喜欢,你们一起来学习一下吧!

在使用docker的时候,我们都是通过docker pull去镜像仓库拉取镜像,然后运行的。但是如果这些镜像不满足我们的业务需求或者我们想自定义一些东西,那我们就可以自己制作镜像,这个时候就可以使用dockerfile制作镜像了。

下面通过制作一个centos系统中安装java17环境。

制作Dockerfile,在/opt/jdk17目录下面新建一个Dockerfile文件,内容如下,下载jdk17。

# Dockerfile文件# 以centos为基础镜像FROM centos# ADD指令将jdk包添加到容器/opt中,# 注意该指令会自动解压缩常见的压缩文件格式:.tar  .tar.gz  .tgz  .zip# 所以该指令会将包解压到/opt/jdk-17.0.10# 如果不想解压,那么可以使用COPY命令,但是后续需要使用解压命令解压ADD jdk-17_linux-x64_bin.tar.gz /opt# 配置java环境变量ENV JAVA_HOME /opt/jdk-17.0.10ENV PATH $JAVA_HOME/bin:$PATH
# docker build制作镜像,-t 镜像名称jdk17,版本v1,. 表示当前目录docker build -t jdk17:v1 .
# 运行镜像docker run -itd --name jdk17  jdk17:v1  /bin/bash
# 查看java命令,出现下面信息,表示已经成功了docker exec -it jdk17 java -version

至此,这个jdk17环境的镜像就制作好了,接下来我们通过这个镜像jdk17:v1来运行一个java程序,同样的用Dockerfile制作镜像。

# Dockerfile文件# 上面制作好的镜像FROM jdk17:v1ENV PARAMS=""# 设置jvm参数ENV JAVA_OPTS="-XX:+UseG1GC -Xms512m -Xmx512m"# 设置时区ENV TZ=PRCRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone# 将jar包添加到/opt下,并改名为app.jarADD helloworld.jar /opt/app.jar# 运行jarENTRYPOINT ["sh","-c","java $JAVA_OPTS -jar /opt/app.jar $PARAMS"]

# 制作镜像,docker build -t test-jar:v1 .
# 运行镜像docker run -itd --name test-helloworld test-jar:v1 /bin/bash
# 执行exec命令进入容器查看有没有启动java应用程序docker exec -it test-helloworld /bin/bash

由此,可以看出jar包已经启动运行了。

镜像制作是不是很简单,后面需要什么,就直接在dockerfile中添加就行了。

标签: #centos操作系统镜像