docker容器共享宿主机环境,如jdk

第一步:首先宿主机中需要安装配置jdk。

  1. 列出所有已经被安装的,名字中包含jdk字符串的RPM包。
    rpm -qa | grep java
    在这里插入图片描述

  2. 删除旧版本的jdk

    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

  3. 下载jdk1.8.172

  4. 解开gz文件

    tar -zxvf jdk-8u172-linux-x64.tar.gz -C /usr

  5. 设置环境变量

    cd /
    vi ~/.bashrc

    #set oracle jdk environment
    export JAVA_HOME=/usr/jdk-8u172-linux-x64
    export JRE_HOME= J A V A H O M E / j r e e x p o r t C L A S S P A T H = . : {JAVA_HOME}/jre export CLASSPATH=.: JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib: J R E H O M E / l i b e x p o r t P A T H = {JRE_HOME}/lib export PATH= JREHOME/libexportPATH={JAVA_HOME}/bin:$PATH

  6. 使得环境变量马上生效

    source ~/.bashrc

第二步:修改dockerfile文件,共享宿主机jdk。
dockerfile文件如下:

# 基于哪个镜像
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文件如下:

version: '3'
services:
   gwmicroservice:
     build: ./网关微服务
     hostname: gwmicroservice
     ports:
        - "8081:8081"
     external_links:
        - "rmmicroservice"
     volumes:
        - /usr/jdk1.8.0_172:/usr/jdk1.8.0_172
     tty: true
     network_mode: bridge
     restart: always
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值