宿主机安装配置jdk
- 列出所有已经被安装的,名字中包含jdk字符串的RPM包
1
> rpm -qa|grep java
- 删除旧版本的jdk
1
2
3
4> rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
> rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
> rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
> rpm -e --nodeps java-1.8.0-openjdk- 1.8.0.65-3.b17.el7.x86_64 - 下载jdk1.8 解压
- 设置环境变量
1
2
3
4
5
6
7vim ~/.bashrc
set oracle jdk environment
export JAVA_HOME=/usr/jdk-8u172-linux-x64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH - 环境变量生效
1
source ~/.bashrc
修改dockerfile文件,共享宿主机jdk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# 基于哪个镜像
FROM centos:7
#配置中文
ENV LANG C.UTF-8
WORKDIR bhapp
# 拷贝文件到容器
ADD GwMicroService-1.1.0.jar app.jar
ADD bootstrap.yml bootstrap.yml
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone \ && bash -c 'touch app.jar'
ENV JAVA_HOME="/usr/jdk1.8.0_172"
ENV PATH="${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/sbin"
# 开放8081端口
EXPOSE 8081
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Xms125m","-Xmx125m","-jar","app.jar"] - 由于以上镜像是没有jdk环境的,所以在生成容器的时候一定要把宿主机jdk目录挂载到容器中。我这里使用的时dockercompose,docker-compose.yml文件如下:
1
2
3
4
5
6
7
8
9
10version: '3'
services:
apm-storage:
ports:
- "8003:8003"
volumes:
- /usr/jdk1.8.0_172:/usr/jdk1.8.0_172
tty: true
network_mode: host
restart: always
扫描二维码,分享此文章