Docker基于Centos7构建JDK8镜像

2024-08-21 03:32

本文主要是介绍Docker基于Centos7构建JDK8镜像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

构建 JDK8 镜像

下载 JDK8

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

image-20201027185030923

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

image-20201027185401601

编辑创建 Dockerfile

# 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"]

构建镜像

docker build -f Dockerfile -t base_jdk8:v1.0 .

执行如下:

image-20201027191035881

生成镜像如下:

image-20201027191212996

启动镜像,测试java环境

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

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

# 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"]

构建镜像

docker build -f Dockerfile -t autotest:v1.0 .

启动镜像服务

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

#!/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/bashdocker 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

这篇关于Docker基于Centos7构建JDK8镜像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091991

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

Linux(Centos7)安装Mysql/Redis/MinIO方式

《Linux(Centos7)安装Mysql/Redis/MinIO方式》文章总结:介绍了如何安装MySQL和Redis,以及如何配置它们为开机自启,还详细讲解了如何安装MinIO,包括配置Syste... 目录安装mysql安装Redis安装MinIO总结安装Mysql安装Redis搜索Red

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群