Docker学习(二十一)构建 java 项目基础镜像

1.下载 JDK 包

JDK各版本官网下载地址: https://www.oracle.com/java/technologies/downloads/archive/#JavaSE

这里我们以 JDK 8u351 为例,点击 Java SE (8U211 and later)

在这里插入图片描述

点击下载 jdk-8u351-linux-x64.tar.gz

在这里插入图片描述

勾选接受协议,点击下载。(这里会需要登录一下,没有账号可以注册一个,Oracle账号以后也会用到)

在这里插入图片描述

下载后,文件如下:

在这里插入图片描述

2.编写 Dockerfile

创建一个用于构建镜像的文件夹,并在文件夹中新建一个文本文件,重命名为 Dockerfile,内容如下:

# 基础镜像(大小:155MB)
FROM quay.io/centos/centos:stream9
# 配置JAVA的环境变量
ENV JAVA_DIR=/usr/local
ENV JAVA_HOME=$JAVA_DIR/jdk1.8.0_351
# 配置到PAHT中
ENV PATH=$PATH:$JAVA_HOME/bin
# 添加 redis 客户端
ADD redis-cli /usr/bin
# 添加 JDK
ADD jdk-8u351-linux-x64.tar.gz $JAVA_DIR
# 安装、更新基础控件
RUN yum -q -y update && yum -q -y upgrade \
	&&  yum install -y tzdata vim less ncurses telnet wget zip unzip traceroute procps net-tools iproute tcpdump mysql postgresql \
	&&  ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
	&&  chmod +x /usr/bin/redis-cli \
	&&  yum clean all \
	&&  echo "alias ls='ls --color'" >> ~/.bashrc \
	&&  echo "alias ll='ls -l'" >> ~/.bashrc
# 需要下载文件的话可以用这个命令
#	&&  wget --quiet https://www.baidu.com/test.txt -P /usr/bin/ \

# 启动命令(因为是基础镜像的Dockerfile,这里轮询让容器可以访问即可)
ENTRYPOINT ["/bin/bash","-c","while true; do sleep 300; done;"]
# 暴露端口
EXPOSE 8888

补充:

  • 基础镜像没有直接使用 openjdk:8-jdk 的镜像是因为镜像中只有 apt-get 没有 yum 命令,不方便后期更新和扩展控件。

  • 如果不需要使用 mysqlredis-clipostgresql 等命令可以直接去掉。

    redis-cli 下载地址:https://share.weiyun.com/f37Mekqs

3.构建镜像

在文件夹下执行如下命令,构建镜像:

docker build -t image_name:image_tag .

执行结果:

在这里插入图片描述

(yum安装控件可能需要等待 3 分钟左右)

查看创建好的镜像:

docker images | grep image_name

执行结果:

在这里插入图片描述
镜像大小:700M

4.创建容器测试

创建容器:

docker run -d --name=container_name image_name:image_tag

进入容器:

docker exec -it container_name bash

查看 JDK 版本:

java -version

执行结果:

在这里插入图片描述

整理完毕,完结撒花~ 🌻





参考地址:

1.Docker部署java项目(Dockerfile方式),https://blog.csdn.net/zhabnghenglmm/article/details/124310381

2.[docker]-容器中支持ll命令,https://blog.csdn.net/xujiamin0022016/article/details/125341593

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将Java项目打包为Docker镜像,你可以按照以下步骤操作: 1. 创建一个Dockerfile:在项目根目录中创建一个名为"Dockerfile"的文件。你可以使用任何文本编辑器打开该文件。 2. 指定基础镜像:在Dockerfile中,使用以下命令指定一个适合Java应用程序的基础镜像。例如,可以选择openjdk镜像: ``` FROM openjdk:8-jdk-alpine ``` 这个示例使用了基于Alpine Linux的OpenJDK 8。 3. 复制应用程序文件:使用以下命令将Java应用程序文件复制到镜像中的特定目录。假设你的Java应用程序的可执行JAR文件在根目录的"target"文件夹中,可以使用以下命令: ``` COPY ./target/your-application.jar /app/your-application.jar ``` 这个示例将"your-application.jar"复制到镜像中的"/app"目录。 4. 设置工作目录:使用以下命令设置镜像的工作目录: ``` WORKDIR /app ``` 这个示例将工作目录设置为"/app"。 5. 安装依赖:如果你的Java应用程序有其他依赖项(如配置文件、静态资源等),可以使用以下命令将它们复制到镜像中。 ``` COPY ./path/to/dependencies /app/dependencies ``` 6. 安装项目依赖:如果你的Java应用程序使用了Maven或Gradle等构建工具,可以使用以下命令将项目依赖项复制到镜像中。 ``` COPY ./pom.xml /app/pom.xml RUN mvn dependency:resolve ``` 这个示例将"pom.xml"文件复制到镜像中,并使用Maven解析依赖项。 7. 暴露端口:如果你的Java应用程序监听了某个特定端口,可以使用以下命令在镜像中暴露该端口。 ``` EXPOSE 8080 ``` 这个示例将端口8080暴露出来。 8. 启动应用程序:使用以下命令定义容器启动时执行的指令。 ``` CMD ["java", "-jar", "your-application.jar"] ``` 这个示例将执行"java -jar your-application.jar"来启动应用程序。 9. 构建镜像:在包含Dockerfile的项目根目录中,使用以下命令构建镜像: ``` docker build -t your-image-name . ``` 这个示例将构建一个名为"your-image-name"的镜像。 10. 运行容器:使用以下命令运行容器: ``` docker run -p 8080:8080 your-image-name ``` 这个示例将使用刚刚构建镜像在本地的8080端口上运行容器。 这样,你就成功将Java项目打包为Docker镜像。请根据你的实际需求进行相应修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不愿放下技术的小赵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值