首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Docker基于Centos7构建JDK8镜像

Docker基于Centos7构建JDK8镜像

作者头像
Devops海洋的渔夫
发布于 2022-01-17 14:00:41
发布于 2022-01-17 14:00:41
3.4K0
举报
文章被收录于专栏:Devops专栏Devops专栏

构建 JDK8 镜像

下载 JDK8

image-20201027185030923

创建镜像的构建目录 base_jdk8,并且将 JDK8 上传到服务器

image-20201027185401601

编辑创建 Dockerfile

代码语言:javascript
复制
# Using Centos for base image
FROM centos:7

# author label
LABEL maintainer="Aron.li"

# install timezone gcc
ENV ENVIRONMENT DOCKER_PROD
RUN cd / && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  && yum makecache \
  && yum install -y wget aclocal automake autoconf make gcc gcc-c++ python-devel mysql-devel bzip2 libffi-devel epel-release \
  && yum clean all

# cd /opt
WORKDIR /opt

# copy jdk8 to /opt, and decompression
ADD jdk-8u271-linux-x64.tar.gz /opt

# set jdk8 env
ENV JAVA_HOME=/opt/jdk1.8.0_271
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

# exec java -version
CMD ["java","-version"]

构建镜像

代码语言:javascript
复制
docker build -f Dockerfile -t base_jdk8:v1.0 .

执行如下:

image-20201027191035881

生成镜像如下:

image-20201027191212996

启动镜像,测试java环境

编写一个启动镜像的脚本 restart_service.sh

代码语言:javascript
复制
basedir=`pwd`

name='base_jdk8'
image='base_jdk8:v1.0'
docker stop $name
docker rm $name
docker run -it --privileged=true --name $name $image /bin/bash

测试如下:

image-20201027191259441

基于 JDK8 的镜像,构建SpringBoot服务

上传 SpringBoot 的 jar 包

image-20201027193505484

编辑创建 Dockerfile

代码语言:javascript
复制
# Using JDK8 for base image
FROM base_jdk8:v1.0

# author label
LABEL maintainer="Aron.li"

# install timezone gcc
ENV ENVIRONMENT DOCKER_PROD
RUN cd / && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# cd /opt
WORKDIR /opt

# copy jar to /opt, and decompression
ADD autotest-0.0.1-SNAPSHOT.jar /opt

# exec java -jar autotest-0.0.1-SNAPSHOT.jar
CMD ["java","-jar","autotest-0.0.1-SNAPSHOT.jar"]

构建镜像

代码语言:javascript
复制
docker build -f Dockerfile -t autotest:v1.0 .

启动镜像服务

编写一个启动镜像的脚本 restart_service.sh

代码语言:javascript
复制
#!/bin/bash
basedir=$(cd `dirname $0`;pwd)
host_ip=`python -c "import socket;print([(s.connect(('8.8.8.8', 53)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1])"`


name='autotest'
image='autotest:v1.0'
docker stop $name
docker rm $name
#docker run -it --name $name $image /bin/bash

docker run -d --name $name -p 8080:8080 -h $name \
           --add-host=mysql_host:$host_ip \
           --add-host=mongo_host:$host_ip \
           --add-host=redis_host:$host_ip \
           $image
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 构建 JDK8 镜像
    • 下载 JDK8
    • 创建镜像的构建目录 base_jdk8,并且将 JDK8 上传到服务器
    • 编辑创建 Dockerfile
    • 构建镜像
    • 启动镜像,测试java环境
  • 基于 JDK8 的镜像,构建SpringBoot服务
    • 上传 SpringBoot 的 jar 包
    • 编辑创建 Dockerfile
    • 构建镜像
    • 启动镜像服务
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档