目录

1.Dockerfile

2.镜像结构

3.Dockerfile语法

4.构建Java项目

5.基于Java8构建项目

1.Dockerfile

常见的镜像DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。

而要自定义镜像,就必须先了解镜像的结构才行。

2.镜像结构

镜像是将应用程序及其需要系统函数库、环境配置依赖打包而成。

我们以MySQL为例,来看看镜像的组成结构

简单来说,镜像就是在系统函数库、运行环境基础上,添加应用程序文件配置文件依赖文件

组合然后编写启动脚本打包在一起形成的文件

我们构建镜像,其实就是实现上述打包过程。  

3.Dockerfile语法

构建自定义的镜像时,并不需要一个文件拷贝打包

我们需要告诉Docker我们的镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要安

装什么依赖启动脚本是什么,将来Docker会帮助我们构建镜像。

描述上述信息的文件就是Dockerfile文件。

Dockerfile就是一个本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操

作来构建镜像。每一个指令都会形成一层Layer。

更新详细语法说明,请参考官网文档Dockerfile reference | Docker Docs  

4.构建Java项目

需求基于Ubuntu镜像构建一个新镜像,运行一个java项目

Dockerfile内容如下:

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local

# 拷贝jdkjava项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar

# 安装JDK
RUN cd $JAVA_DIR 
 && tar -xf ./jdk8.tar.gz 
 && mv ./jdk1.8.0_144 ./java8

# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin

# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar
docker build -t javaweb:1.0 
docker run --name web -p 8090:8090 -d javaweb:1.0

 

5.基于Java8构建项目

虽然我们可以基于Ubuntu基础镜像,添加任意自己需要的安装包,构建镜像,但是却比较麻烦。所以大多数情况下,我们都可以在一些安装了部分软件的基础镜像上做改造。

例如,构建java项目的镜像,可以在已经准备了JDK的基础镜像基础上构建。

需求:基于java:8-alpine镜像,将一个Java项目构建为镜像

实现思路如下:

FROM java:8-alpine
COPY ./app.jar /tmp/app.jar
EXPOSE 8090
ENTRYPOINT java -jar /tmp/app.jar

原文地址:https://blog.csdn.net/weixin_45481821/article/details/134627321

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_8457.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注