Dockerfile

1.使用Dockerfile生成带有jdk的容器

Dockerfile是用来构建docker镜像的,docker镜像可以理解为一个只读的模板,使用docker镜像可以生成docker容器。

1.1 dockerfile基本了解

#centos with jdk 8

#Author zhanglei

#build a new image with centos

FROM centos

MAINTAINER zhanglei

#make a new directory to store the jdk files

RUN mkdir /usr/local/java

#copy the jdk to image /usr/local/java

ADD jdk1.8.0_201 /usr/local/java

#set enviroment variables

ENV JAVA_HOME /usr/local/java/

ENV JRE_HOME ${JAVA_HOME}/jre

ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib

ENV PATH ${JAVA_HOME}/bin:$PATH

# 代表注释  会在使用Dockerfile构建镜像时显示出来

#FROM  表示使用centos(镜像名)[版本号]作为基础镜像,如果本地不存在,会从dockerhub中下载

#MAINTAINER  指定维护者的信息

#RUN  构建Dockerfile时就会执行的命令,相当于执行 "/bin/bash -c xxx"

#ADD 将宿主机的文件拷贝到容器中

#COPY 和ADD的作用相同,但是会自动解压拷贝的文件

#ENV 设置环境变量

1.2使用Dockerfile构建镜像

docker build -t [-f,-m]  centos-jdk:0.1  .


-t 指定镜像的名称和版本

-f 指定使用的Dockerfile路径

-m 指定容器的最大内存

centos-jdk:0.1 和-t相关,centos-jdk是名称,:0.1是版本

.  最后的点代表执行当前目录下的Dockerfile

1.3 查看镜像

docker images


1.4 检查容器jdk配置是否成功

docker run -it   centos-jdk:0.1 /bin/bash

javac

-i 以交互模式运行容器,通常与 -t 同时使用;

-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用

/bin/bash

2.使用Dockerfile构建web程序

2.1 使用Dockerfile构建一个简单的springboot程序

#基础镜像信息

FROM centos-jdk:0.1

#作者

MAINTAINER zhanglei123

VOLUME /tmp

#复制jar包到容器中

ADD app.jar  /usr/local/app.jar

#程序运行的端口

EXPOSE 8090

#执行jar文件

CMD  java -jar /usr/local/app.jar



FROM :表示使用centos-jdk:0.1为基础镜像

MAINTAINER :指定维护者的信息

VOLUME :VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录

ADD :拷贝文件并且重命名(前面是上传jar包的名字,后面是重命名)

CMD :启动容器时执行的命令

2.2 生成镜像

docker build -t springboot-web .

2.3构建容器

docker run --name web-test  -p 8090:8090 -d springboot-web

--name 容器名

-p 宿主机和容器之间的端口映射 主机端口:容器端口

-d 程序在后台运行 

springboot-web 启动容器的镜像

2.4 查看程序运行日志

docker logs -tf web-test

-tf  相当于 tail -f命令

-t 显示时间戳

-f 实时显示日志

你可能感兴趣的:(Dockerfile)