docker之java环境安装

背景

docker基本镜像环境:Ubuntu

目标安装java环境

jdk下载

docker环境下只有命令行环境,所以无法通过登录oracle官方网站下载安装介质。

由于现在oracle现在下载安装介质必须先注册登录,所以导致无法通过wget下载,还需要在docker外先下载jdk介质,然后拷贝至docker内:

1
docker cp /Users/zhengk/Downloads/jdk-8u221-linux-x64.tar.gz b9e5ebd23a78:/tmp

安装jdk

解压jdk

1
2
cd /tmp
tar -zxvf jdk-8u111-linux-x64.tar.gz

确定jdk路径

1
mv /tmp/jdk1.8.0_221 /home/jdk1.8.0_221

配置环境变量

1
vim /etc/profile

增加以下内容:

1
2
3
4
5
#set java env
export JAVA_HOME=/home/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

配置启动文件

由于docker镜像启动后,会丢失环境变量。可采取两种方式规避:

  • 运行镜像时配置环境变量参数
  • 在启动文件中配置环境变量

这里采取第二种方式:

在根目录创建run.sh文件:

1
vim /home/run.sh

增加如下内容:

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
# 配置环境变量
source /etc/profile
# 其他内容。。。
# 进入目录
# cd /home/AnyQ/build
# 启动solr
# sh solr_script/anyq_solr.sh solr_script/sample_docs
# 启动AnyQ
# ./run_server

该启动文件中可增加其他启动内容,后续可直接用于启动镜像内容。

提交镜像

1
docker commit 50f6af712d06 keejo/anyq:1.0

docker启动

1
docker run -t -i -p 8999:8999 keejo/anyq:1.0 /home/run.sh

启动后,就已经加载了java的环境变量了。

扩展

关于Ubuntu的jdk安装,网上很多推荐使用apt-get的方式:

1
2
3
4
5
apt-get upgrade
apt-get install software-properties-common python-software-properties
add-apt-repository ppa:webupd8team/java
apt-get upgrade
apt-get install oracle-java8-installer

但该方法目前已经失效了。