返回顶部
首页 > 资讯 > 后端开发 > JAVA >Dockerfile自定义镜像 - 基于 java:8-alpine 镜像,将一个Java项目构建为镜像
  • 621
分享到

Dockerfile自定义镜像 - 基于 java:8-alpine 镜像,将一个Java项目构建为镜像

Docker 2023-09-23 12:09:58 621人浏览 八月长安
摘要

  目录   一、前置知识 1.镜像结构 2.Dockerfile是什么 二、自定义一个 java 项目镜像 1.创建一个空目录,在这个空目录中创建一个文件,命名为 DockerFile,最后将 java 项目打包成 jar 包,放到这个目

 

目录

 

一、前置知识

1.镜像结构

2.Dockerfile是什么

二、自定义一个 java 项目镜像

1.创建一个空目录,在这个空目录中创建一个文件,命名为 DockerFile,最后将 java 项目打包成 jar 包,放到这个目录中

2.编写 Dockerfile 文件

3.使用 docker build 构建为一个镜像

4.使用 docker run 运行镜像


一、前置知识


1.镜像结构

我们知道镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成,那么它的层次结构是怎么的呢?

镜像是分层结构,每一层称为一个Layer

  1. BaseImage层:包含基本的系统函数库、环境变量、文件系统
  2. Entrypoint:入口,是镜像中应用启动的命令
  3. 其它层:在BaseImage基础上添加依赖、安装程序、完成整个应用的安装和配置

2.Dockerfile是什么

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction)用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer

以下参考官网文档(只是列举了一些常用的)

 Dockerfile reference | Docker DocumentationFind all the available commands you can use in a Dockerfile and learn how to use them, including COPY, ARG, ENTRYPOINT, and more.https://docs.docker.com/engine/reference/builder

指令

说明

示例

FROM

指定基础镜像(Dockerfile 第一行必须是 FROM,从基础镜像来构建,基础镜像可以是基本操作系统,如ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine

FROM Centos:7

ENV

设置环境变量,可在后面指令使用

ENV key value

COPY

拷贝本地文件到镜像的指定目录

COPY ./Mysql-5.7.rpm /tmp

RUN

执行linuxshell命令,一般是安装过程的命令

RUN yum install GCc

EXPOSE

指定容器运行时监听的端口,是给镜像使用者看的

EXPOSE 8080

ENTRYPOINT

镜像中应用的启动命令,容器运行时调用

ENTRYPOINT java -jar xx.jar

二、自定义一个 java 项目镜像


1.创建一个空目录,在这个空目录中创建一个文件,命名为 DockerFile,最后将 java 项目打包成 jar 包,放到这个目录中

 

2.编写 Dockerfile 文件

主要编写以下信息:

  1. 基于 java:8-alpine 作为基础镜像
  2. 将 app.jar 拷贝到镜像中
  3. 暴露端口
  4. 编写入口 ENTRYPOINT

Ps:Dockerfile的第一行必须是FROM;从一个基础镜像来构建基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine

# 指定基础镜像FROM java:8-alpine# 拷贝 java 项目包COPY ./docker-demo.jar /tmp/app.jar# 暴露端口EXPOSE 8090# 入口,java项目的启动命令ENTRYPOINT java -jar /tmp/app.jar

3.使用 docker build 构建为一个镜像

参数说明:

  • -t 表示设置镜像名和版本号(自定义)
  • . 表示 Dockerfile 所在目录,因为刚刚我是将 Dockerfile 放在了当前文件目录下,所以就用 . 来表示当前目录

通过 docker images 就可以看到刚刚构建好的镜像

4.使用 docker run 运行镜像

这时候你就可以根据服务器 IP 和自己配置的镜像映射端口号以及项目地址就可以访问了~

注意:如果需要访问,别忘了开放云服务器的端口号的防火墙哦~

Ps:最后也可以使用 docker push 发布镜像(DockerHub、阿里云镜像仓库)

 

来源地址:https://blog.csdn.net/CYK_byte/article/details/131624909

--结束END--

本文标题: Dockerfile自定义镜像 - 基于 java:8-alpine 镜像,将一个Java项目构建为镜像

本文链接: https://lsjlt.com/news/416442.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作