1 Dockerfile,需要定义一个Dockerfile,Dockerfile定义了进程需要的一切东西。Dockerfile涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程(当应用进程需要和系统服务和内核进程打交道,这时需要考虑如何设计namespace的权限控制)等等;
2 Docker镜像,在用Dockerfile定义一个文件之后,docker build时会产生一个Docker镜像,当运行 Docker镜像时会真正开始提供服务;
3 Docker容器,容器是直接提供服务的。
DockerFile常用保留字指令
演示自定义构建java8版本centos
首先拉取centos,注意这里使用centos7版本进行测试,centos8版本与7版本差异较大
创建文件夹myfile并在此文件夹内上传jdk8文件压缩包
编写写Dockerfile
FROM centos:7
MAINTAINER wutian
ENV MYPATH /usr/local
WORKDIR $MYPATH
安装vim编辑器
RUN yum -y install vim
安装ifconfig命令查看网络IP
RUN yum -y install net-tools
安装java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
ADD 是相对路径jar,把jdk-8u181-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u181-linux-x64.tar.gz /usr/local/java/
配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_181
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 80
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
开始构建
测试:
测试vim和ifconfig以及java8命令
成功