Docker下部署Java项目

        本篇还是以计算型验证码为Demo,详细记录下在Docker下部署Java项目的过程。 

        项目:testComputeCode.jar;

        开发方式:SpringBoot(2.0.2.RELEASE);

        宿主机:CentOS 7.9;

        Docker:docker-ce 26.1.4;

        容器内操作系统:centos 7;

        容器JDK:18.0.2.1;       

        1、安装Docker

        使用yum安装docker-ce(社区版),由于官方仓库源下载速度可能较慢,可以选择国内yum仓库源,比如选择阿里云提供的仓库源。

        wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo       

图1

        cat /etc/yum.repos.d/docker-ce.repo,查看下载到本地的yum源文件,如图2 

图2

       yum install docker-ce ,安装docker-ce。

图3

        docker -v,查看docker版本

图4

        由于docker官方镜像仓库下载较慢,可以使用国内镜像仓库,比如阿里云镜像仓库,在/etc/docker目录中创建daemon.json文件,内容需要在阿里云控制台查找(控制台-->容器镜像服务-->镜像工具-->镜像加速器),每个用户的内容是唯一的。

        systemctl start docker 启动docker服务

        systemctl enable docker 设置docker开机启动

        2、创建Dockerfile

#以centos7为基础镜像
FROM centos:7

#指定环境变量
ENV baseDirectory=/usr/local/java
ENV JAVA_HOME=${baseDirectory}/jdk/jdk-18.0.2.1
ENV PATH=${JAVA_HOME}/bin:$PATH
ENV TZ=Asia/Shanghai

#指定容器的默认工作目录
WORKDIR ${baseDirectory}

#设定时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

#设置yum源为阿里云,并安装fontconfig库(因为验证码用到了java的画笔类等,这些类底层依赖fontconfig)
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo \
&& yum clean all \
&& yum makecache \
&& yum install fontconfig -y

#设置语言环境
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 && \
echo 'LANG="zh_CN.utf8"' > /etc/locale.conf
ENV LANG zh_CN.utf8

#将JDK复制到容器中并解压
ADD jdk-18.0.2.1_linux-x64_bin.tar.gz ${baseDirectory}/jdk

#将项目复制到容器中
COPY testComputeCode.jar ${baseDirectory}

#指定项目暴露的端口
EXPOSE 8080

#启动指令
ENTRYPOINT ["java","--add-opens","java.base/java.lang=ALL-UNNAMED","-jar","testComputeCode.jar"]

        3、通过sftp上传如下资源

        jdk-18.0.2.1_linux-x64_bin.tar.gz

        testComputeCode.jar

        Dockerfile        

图5

        4、构建Dockerfile生成镜像

        在Dockerfile所在的目录下进行构建,命令如下:

        docker build -t test_java:latest .        

图6

        其中 -t 参数表示镜像的名称和版本,. 表示当前目录。如果Dockerfile文件的名称不是默认的"Dockerfile",那么需要使用 -f 参数指定具体的名称,例如文件名为"dockerfile_test",则构建命令如下:

        docker build -t test_java:latest -f dockerfile_test . 

        5、运行镜像形成容器

        将创建好的镜像运行成为容器,项目就会随之而启动,运行命令如下:

        docker run -d -p 8080:8080 test_java

        通过docker ps命令可查看正在运行的容器,运行成功后即可正常访问,如图7。

        

图7

        通过上述几步即可在Docker下部署一个Java项目,项目镜像可以上传到仓库,其他开发者通过仓库下载下来或是直接将项目导出为归档文件发给其他开发者,不仅非常方便而且可以保证所有开发者的运行环境是相同的。

         

        

        

        

        

        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qinvic12

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

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

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

打赏作者

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

抵扣说明:

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

余额充值