docker创建jdk镜像

前言:
现在有需求要用docker跑java项目,而且有多个项目,所以我的思路是自己搭建一个基于jdk8的基础镜像,后边所有的项目镜像在这个基础上再编译。

将要用到的技术及软件:
编译方式:Dockerfile
Linux镜像:centos7
jdk:jdk1.8.0_144
这里要构建一个基于centos7和jdk1.8的镜像。

一、下载/查看centos7:

  • 1.1 下载centos7镜像:
docker pull centos:7
  • 1.2 查看centos7镜像:
docker images
  • 1.3、编译Dockerfile

新建一个文件,这里命名为Dockerfile

vi Dockerfile
Dockerfile中的内容:
#配置Dockerfile  文件
FROM centos:7
#指定镜像创建者信息
MAINTAINER  gblfy
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u191-linux-x64.tar.gz /usr/local/
#配置java环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_191
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin

注:

  • 1、这里使用的镜像是上面下载的centos镜像;
  • 2、jdk拷贝到Dockerfile同级目录,如果在其它目录拷贝的时候可能出现找不到目录错误;
  • 1.4执行命令构建镜像,使用Dockerfile创建镜像

不要少了点跟空格,这很重要

docker build -t='jdk1.8' .

格式:docker build -t “jdk_name” .
注:
模板格式:docker build -t jdk-8u144:20180619 . -f jdkdockerfile

  • 1、 -t 指定镜像的名称和tag;
  • 2、 使用-f 指定要使用的dockerfile,如果不指定会寻找当前目录名为Dockerfile的文件
  • 3、上面有个 . ,这个表示当前目录,必不可少的
  • 1.5 查看镜像是否建立完成
docker images
  • 1.6 运行创建的镜像
docker run -di --name=dockerjdk jdk1.8

格式:docker run -di --name=jdk_name(自定义) jdk1.8
1.7 进入容器:

docker exec -it dockerjdk /bin/bash

1.8 查看jdk版本:

java -version

参考链接:
https://blog.csdn.net/qq_35981283/article/details/80738451
https://blog.csdn.net/qq_40794266/article/details/83793241

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524259.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

44年前的今天,改变世界的TA诞生了! | 极客头条

戳蓝字“CSDN云计算”关注我们哦!极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!1975年4月4日,是历史上普通的一天。这一天,有两个人成立…

第二篇:Spring Boot 热部署

文章目录1. 依赖2. 开启实时自动编译3. 开启运行自动编译开关1. 依赖 <!-- 热部署DevTools --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency>2. 开启实时自…

Qt关于Tcp通信步骤的总结

Qt中TCP通信&#xff0c;与C中tcp通信还是有差别的&#xff0c;下面总结一下Qt中TCP通信。 服务端&#xff1a; 创建QTcpServer对象。可以在构造函数中创建&#xff0c;在.h中声明类QTcpServer,并在类中定义其指针变量&#xff1b;监听。使用函数listen()来监听IP和端口&…

Spring Boot 企业实战_前夕

Spring Boot 专栏设置意在实战微服务&#xff0c;依赖统一由父工程进行依赖控制&#xff0c;其他子项目均依赖此工程。 小技巧&#xff1a; Spring Boot 集成周边技术3部曲 1.pom文件引入maven依赖 2.配置文件中配置相关信息 3.启动类上加注解 创建Spring Boot 父工程&#xff…

西门子和阿里云要搞啥事情?| 极客头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;重 磅• 西门子MindShpere成功部署在阿里功云上并开始运营• 信守承诺、按期推…

Qt中UDP通信的简单示例

udp通信分为发送端和接收端&#xff0c;通信步骤可以分为以下&#xff1a; 接收端&#xff1a; 创建QUdpSocket对象。在.h文件中添加类的前置声明&#xff0c;定义该类的指针&#xff0c;在.cpp的构造函数中定义指向该类的指针。bind()。绑定IP和端口。connect()。绑定readyR…

FB接连出事儿?上亿用户记录在亚马逊云服务器上就公之于众了……下滑到第七?领英说苹果怎么就不受雇员欢迎了呢? | 极客头条...

戳蓝字“CSDN云计算”关注我们哦&#xff01;极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 销售火…

C/C++ 有 1 、 2 、 3 、 4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

目录 一.结果演示二.源代码三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐 : C/C 学习目录…

第三篇:Spring Boot整合Servlet

一、Springboot整合Servlet 第一种方案&#xff1a; 1、创建一个自定义的servlet&#xff0c;继承HttpServlet添加WebServlet注解 以前ssm中的web.xml配置文件中的servlet> <servlet><servlet-name>FirstServlet</servlet-name><servlet-class>c…

Qt中线程的简单使用

对于线程过去写的比较少&#xff0c;现在也几乎是小白的水平。先创建Qt empty project,即Qt空项目&#xff0c;打开QtCreate->文件->新建文件或项目->其它项目->empty qmke project,接着按提示创建Qt空项目&#xff0c;创建之后&#xff0c;在项目上右键添加新文件…

C/C++ 企业发放的奖金根据利润提成。利润 (i) 低于或等于 10 万元时,奖金可提 10% ;利润高 于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元

目录 一.结果演示二.源代码三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐 : C/C 学习目录…

第四篇:Spring Boot 整合listener

一、Spring Boot整合listener 第一种方案&#xff1a;通过注解扫描完成Listener的注册 1.1 编写一个listener WebListener public class FirstListener implements ServletContextListener {Overridepublic void contextInitialized(ServletContextEvent sce) {System.out.pri…

2019年关于VM和Kubernetes的思考 | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;转自&#xff1a;开源云中文社区近年来&#xff0c;容器已成为云原生应用程序架构的同义词。它们重新定义了打包、分发、部署和管理应用程序的方式。但是&#xff0c;容器本身就是已有Linux技术的重新兴起&#xff0c;只不过这些技术…

Qt实现界面的窗口的局部动态添加并布局

此程序实现的是点击界面的添加界面按钮&#xff0c;新增加一个窗口&#xff0c;并实现窗口的布局&#xff0c;随着窗口个数的在布局中的增加&#xff0c;窗口大小自动缩小。创建基于QT widget Application的应用程序&#xff0c;选择基类QDialog,去掉Generate form前的勾&#…

第五篇:Spring Boot整合filter

一、Springboot整合Servlet 第一种方案&#xff1a;通过注解扫描完成filter组建的注册 1、编写自定义filter(FirstFilter) //urlPattern是一个数组可以添加多个 //WebFilter(filterName "FirstFilter",urlPatterns {"*.do","*.jsp"}) WebFilt…

C/C++ 一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?

目录 一.结果演示二.源代码三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐 : C/C 学习目录…

QtCreate由MinGW编译的项目,换为MSVC编译器后编译无法通过

解决方法&#xff1a; 1.将文件的编码格式设置为utf-8且BOM格式&#xff1b; 2.在.pro文件中添加如下代码 msvc { QMAKE_CFLAGS /utf-8 QMAKE_CXXFLAGS /utf-8 } 其中方法一没有试过&#xff0c;我用的是方法二&#xff0c;可以编译通过。 还有一种方法&#xff1a; 在头文件…

微服务精华问答:什么是微服务架构中的DRY?| 技术头条

微服务(Microservice Architecture)是近几年流行的一种架构思想,关于它的概念很难一言以蔽之。 究竟什么是微服务呢?今天就让我们一探究竟。1Q&#xff1a;什么是微服务架构中的DRY&#xff1f;A&#xff1a;DRY代表不要重复自己。它基本上促进了重用代码的概念。这导致开发和…

第六篇:Spring Boot 访问静态资源

Spring Boot的默认静态资源的路径为&#xff1a; spring.resources.static-locationsclasspath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ 优先级从从高到低 一、Spring Boot 访问静态资源有二种方案 第一种方案&#xff08;默认&…

C/C++ 输入某年某月某日,判断这一天是这一年的第几天?

目录 一.结果演示二.源代码三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 面向对象 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 设计模式 零基础 C/C 学习路线推荐 : C/C 学习目录…