栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Dockerfile安装jdk1.8 、部署java项目

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Dockerfile安装jdk1.8 、部署java项目

Dockerfile安装jdk1.8 、部署java项目 基础指令
FROM
  基于哪个镜像
MAINTAINER
  用来写备注信息,例如作者、日期等。
COPY
  复制文件进入镜像(只能用相对路径,不能用绝对路径)
ADD
  复制文件进入镜像(可以用绝对路径,假如是压缩文件会解压)
WORKDIR
  指定工作目录,假如路径不存在会创建路径
ENV
  设置环境变量
EXPOSE
  暴露容器端口到宿主机
RUN
  在构建镜像的时候执行一条命令,作用于镜像层面
  shell命令格式:RUN yum install -y net-tools
  exec命令格式:RUN [ "yum","install" ,"-y" ,"net-tools"]
ENTRYPOINT
  在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条
CMD
  在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条
  容器启动后执行默认的命令或者参数,允许被修改
安装jdk
同级目录下创建一个Dockerfile,必须叫这个名字
[root@localhost file]# ll
total 181296
-rw-r--r--. 1 root root         0 Oct 31 10:34 Dockerfile
-rw-r--r--. 1 root root 185646832 Mar 28  2019 jdk-8u181-linux-x64.tar.gz

编写Dockerfile
[root@localhost file]# vim Dockerfile 
[root@localhost file]# cat Dockerfile 

# 基于cntos7,如果没有这个镜像那么它会下载这个镜像。
FROM centos:7
# 创建者(这个可以不写)
MAINTAINER 吴磊
# 为Dockerfile中所有RUN、CMD、ENTRYPOINT、COPY和ADD指令设定工作目录
WORKDIR /usr
# 执行命令(这里创建了一个目录)
RUN mkdir /usr/local/java
# 和copy一样,复制文件到指定目录,但是copy不能解压,add自动解压
ADD jdk-8u181-linux-x64.tar.gz /usr/local/java
# 重命名(不知道文件名可以现在宿主机解压后看一下)
RUN ln -s /usr/local/java/jdk1.8.0_181 /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 

执行dockerfile文件,创建的镜像名为jdk1.8,最后面的点表示当前目录(即dockerfile所在目录) 
[root@localhost file]# docker build -t='jdk1.8' . 

Sending build context to Docker daemon 201.8MB 
Step 1/10 : FROM centos:7 
 ---> 67fa590cfc1c 
Step 2/10 : MAINTAINER 吴磊 
 ---> Running in 82b0855b713c 
Removing intermediate container 82b0855b713c 
 ---> 6ba6c5306ef5 
Step 3/10 : WORKDIR /usr 
 ---> Running in 53f979aa515b 
Removing intermediate container 53f979aa515b 
 ---> 623ec9ba1c71 
Step 4/10 : RUN mkdir /usr/local/java 
 ---> Running in f074844393c7 
Removing intermediate container f074844393c7 
 ---> 05a226b05d2f 
Step 5/10 : ADD jdk-8u181-linux-x64.tar.gz /usr/local/java 
 ---> 99a917b34d5c 
Step 6/10 : RUN ln -s /usr/local/java/jdk1.8.0_181 /usr/local/java/jdk 
 ---> Running in ccdf92640d65 
Removing intermediate container ccdf92640d65 
 ---> 93d145bf041d 
Step 7/10 : ENV JAVA_HOME /usr/local/java/jdk 
 ---> Running in bcded531db5a 
Removing intermediate container bcded531db5a 
 ---> 715630eea4d3 
Step 8/10 : ENV JRE_HOME ${JAVA_HOME}/jre 
 ---> Running in c9aa4b7df0db 
Removing intermediate container c9aa4b7df0db 
 ---> 97050481ab7a 
Step 9/10 : ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib 
 ---> Running in 0123f3ea1213 
Removing intermediate container 0123f3ea1213 
 ---> 8304bed832f1 
Step 10/10 : ENV PATH ${JAVA_HOME}/bin:$PATH 
 ---> Running in 66e39b8befef 
Removing intermediate container 66e39b8befef 
 ---> 437729c49ac1 
Successfully built 437729c49ac1 
Successfully tagged jdk1.8:latest 

查看所有的镜像,此时就多了一个jdk1.8 
[root@localhost file]# docker images 

REPOSITORY       TAG I        MAGE ID          CREATED         SIZE 
jdk1.8             latest      437729c49ac1  14 seconds ago  584MB 
centos          7           67fa590cfc1c  2 months ago    202MB
 
制作容器并进到容器里面(能看到java版本号就没问题了) 
[root@localhost file]# docker run -it --name=jdk8 jdk1.8:latest /bin/bash 
[root@98c7b9225445 usr]# java -version 
java version "1.8.0_181" 
Java(TM) SE Runtime Environment (build 1.8.0_181-b13) 
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode) 
[root@98c7b9225445 usr]# 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332959.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号