欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

win10下docker采用Dockerfile安装jdk1.8

程序员文章站 2024-03-14 20:12:05
...

一、安装docker

省略

二、docker使用

window下控制台下操作结果:

2.1 检查docker是否安装成功

省略

2.2 安装centos

CentOS 7是3.10的内核,此处我们选择用CentOS 7操作系统

镜像仓库选用Docker官方的:https://hub.docker.com/explore/

docker pull centos

先检查Linux系统是32位还是64位
power shell进入虚拟机

docker-machine ssh default

该命令默认安装最新版 latest,命令:docker images 查看
win10下docker采用Dockerfile安装jdk1.8
2.3 docker中的jdk

在该Docker容器中,我们只下载了一个centos的镜像,也就是说docker容器中有centos,我们可以运行该centos操作系统。那我们怎么样把jdk放入到centos镜像中,让docker容器运行的时候不但有centos,而且有jdk?应该在centos的镜像的基础上再做一个镜像,该镜像中既包含centos,也包含jdk。
win10下docker采用Dockerfile安装jdk1.8
所以我们要使用DockerFile的技术在centos基础镜像的基础上再次构建一个镜像为jdk的镜像。

2.3.1查询linux版本,命令: getconf LONG_BIT,不行用

uname -a    

win10下docker采用Dockerfile安装jdk1.8

2.3.2下载jdk

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

win10下docker采用Dockerfile安装jdk1.8

注:我是64位,先下载了前者,安装完了查看java -version就一直报错,没关系不行了都试试。这里建议先下载截图第二个。

2. 在任意位置建立工作目录,我在D:\docker\centos
win10下docker采用Dockerfile安装jdk1.8
3. 将下载的jdk文件放入并新建一个Dockerfile文件,如上图所示;打开git-bash输入

vim Dockerfile
#建立一个新的镜像文件,配置模板:意思就是我新建立的镜像是以centos为基础模板的。因为jdk必须运行在操作系统之上

FROM centos

#配置作者信息  作者名  作者邮箱

MAINTAINER mai aaa@qq.com

#创建一个新目录来存储jdk文件

RUN mkdir /usr/local/java

#将jdk压缩文件复制到镜像中,它将自动解压缩tar文件

ADD jdk-8u261-linux-x64.tar.gz /usr/local/java/

#创建同步链接 保持同步:ln -s 源文件 目标文件

RUN ln -s /usr/local/java/jdk1.8.0_261 /usr/local/java/jdk

# 设置环境变量

ENV JAVA_HOME /usr/local/java/jdk
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH

4. 制作镜像

cmd控制台进入该工作路径下

docker build -t="centos-jdk" .(后边的 . 不能少,意为当前目录下执行)

win10下docker采用Dockerfile安装jdk1.8
查看镜像命令:docker images
win10下docker采用Dockerfile安装jdk1.8
5. 建立容器,查看新的镜像中的JDK是否正确

根据一个镜像就可以启动一个容器,容器是系统的运行环境

docker run --name centos-j -it centos-jdk /bin/bash
或
winpty docker run --name centos-j -it centos-jdk sh

查看jdk:java -version # 出来结果表明配置没问题

win10下docker采用Dockerfile安装jdk1.8
进入安装jdk路径 通过ls查看该目录下存在jdk目录与解压好的jdk1.8.0_221。

通过ls -l可以查看到jdk是来自于jdk1.8.0_221的链接
win10下docker采用Dockerfile安装jdk1.8

三、命令解释

1、exec:进入docker容器内部进行各种操作

1、-it:进入控制台,并且有数据操作的交互

2、bash:用命令行进行操作

如上启动centos-jdk和centos

四、踩坑
1.查询Java -version报错 /usr/local/java/jdk/bin/java: cannot execute binary file: Exec format error

win10下docker采用Dockerfile安装jdk1.8
解决:出错是因为下载了下面的jdk,百度说是树莓派专用…反正这个错误肯定是版本不匹配,多试几个
win10下docker采用Dockerfile安装jdk1.8
2.报错java: command not foundwin10下docker采用Dockerfile安装jdk1.8
解决:建议环境变量啥的能复制就复制,不要自己敲,命令不懂的百度理解,懂了才好排错。检查Dockerfile是否编译有误,我是源文件jdk1.8.0_261以为随便写的就写成了jdk1.8.0_221…需要看下安装包里正确的写法,保持一致即可。

#创建同步链接 保持同步:ln -s 源文件 目标文件

RUN ln -s /usr/local/java/jdk1.8.0_261 /usr/local/java/jdk

完事收工!

原帖链接:https://www.cnblogs.com/liwenhong199404/p/11550802.html
另一个好玩的:https://www.cnblogs.com/linjj/p/5606911.html
https://www.cnblogs.com/linjj/p/5606833.html

相关标签: docker