FROM
#基于某个镜像进行创建
FROM java:8
FROM centos
ENV
#指定环境变量
ENV JAVA_OPTS = "-Xms1g -Xmx1g"
MAINTAINER
#镜像发布的作者信息被LABEL替代
MAINTAINER fangyuan
LABEL
#可以使用docker inspect 查看到
LABEL org.opencontainers.image.authors="SvenDowideit@home.org.au"
RUN
#执行的命令
RUN ["unzip" ,"java.zip"]
RUN cd home
RUN mkdir file
COPY
#将文件拷贝到容器中
COPY index.html home/index.html
COPY java.jar java.jar
ADD
#添加到容器中 自动解压
ADD application.jar home/application.jar
VOLUME
#卷挂载
VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]
EXPOSE
#端口暴露
EXPOSE 80 443
CMD
#命令执行
CMD["java","-jar","app.jar"]
ENTRYPOINT
#命令执行
ENTRYPOINT["java","-jar","app.jar"]
WORKDIR
#工作地址,workdir之后操作的文件的路径可剔除掉workdir中的
WORKDIR /path/to/workdir
Dcokerfile发布springboot项目
FROM java:8
COPY index.text home/index.text
ADD javaApplication.jar home/javaApplication.jar
ENTRYPOINT ["java","-jar", "home/javaApplication.jar","&"]
-----------------
FROM java:8
WORKDIR /home
ENV java_opts="-Xms100m -Xmx100m"
COPY index.text index.text
ADD javaApplication.jar javaApplication.jar
ENTRYPOINT ["sh","-c","java -jar javaApplication.jar $java_opts"]
使用shell脚本执行
1、定义一个shell >> entrypoint.sh
#!/bin/sh
exec java ${JAVA_OPTS} -jar javaApplication.jar "$@"
2、编写Dockerfile
#定义镜像基础
FROM java:8
#定义工作位置
WORKDIR /home
#工作环境
ENV JAVA_OPTS="-Xms500m -Xmx500m"
#将shell文件拷贝到容器
COPY entrypoint.sh entrypoint.sh
#将shell脚本授权
RUN chmod 755 entrypoint.sh
#复制jar包到容器
COPY javaApplication.jar javaApplication.jar
#执行脚本
ENTRYPOINT ["./entrypoint.sh"]
3、将本地的entrypoint.sh授权
chmod 755 entrypoint.sh
运行Dockerfile 打包成镜像
docker build -f Dockerfile -t 镜像名称:版本 .
#如果执行的文件名就是Dockerfile可省略不写
docker build -t 镜像名称:版本 .
运行镜像
docker run -itdp 8081:8082 --name digua -e JAVA_OPTS="-Xms512m -Xmx512m -XX:+UseParallelOldGC" -v /home/dfile:/home:rw 镜像名:版本