如何使用dockerfile打包 jdk8、sentinel-dashboard-1.8.3镜像

479 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

使用Docker打包自己的第一个镜像

打包自己的jdk镜像,创建一个dockefile文件,编写Dockerfile

FROM centos:7

MAINTAINER breeze breeze-cloud@foxmail.com

ADD ./jdk-8u202-linux-x64.tar.gz /usr/local

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ENV TIME_ZONE Asia/Shangha
ENV JAVA_HOME /usr/local/jdk1.8.0_202
ENV JRE_HOME /usr/local/jdk1.8.0_202/jre
ENV PATH $JAVA_HOME/bin:$PATH

解释:

  • FROM 指定基础镜像,此处使用centos:7镜像
  • MAINTAINER 指明该镜像的作者和其电子邮件
  • LABLE key=value 指定镜像的作者,会更灵活
  • WORKDIR 指定镜像的工作目录,如果不存在,则会创建目录
  • COPY 以Dockerfile所在目录为开始,将指定路径下的压缩包拷贝到镜像环境下的工作目录下的jdk压缩包,此时需要把压缩包中的文件添加到镜像中,语法:ADD ... ,注意:jdk*.tar.gz 使用的相对路径,需要先解开压缩包然后执行 COPY 命令,所以这使用 ADD 搞定
  • ENV 指定环境变量

2. 指定dockerfile进行build编译镜像

docker build -t breeze-java:8 . -f dockerfile
  • docker build -t [镜像名]:[标签] .
  • 最后一个 [ . ] 指定Dockerfile中COPY的相对路径
  • -f [Dockerfile路径] 可以省略不写,使用 [ . ] 默认会使用当前路径下的Dockerfile文件

image.png

3.打标签

docker tag breeze-java:8 breezeworker/breeze-java:8

image.png

4.上传到自己的dockerHub中,前提是已经登录 docker login进行登录即可

docker push breezeworker/breeze-java:8

image.png

二、打包sentinel-dashboard的镜像

1. 编写Dockerfile进行打包

FROM breezeworker/breeze-java:8

MAINTAINER breeze breeze-cloud@foxmail.com

ENV TIME_ZONE Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN mkdir -p /sentinel-dashboard-1.8.3

WORKDIR /sentinel-dashboard-1.8.3

ADD ./sentinel-dashboard.jar ./   

EXPOSE 8080

ENTRYPOINT ["java","-jar","sentinel-dashboard-1.8.3.jar"]

解释:

  • ENTRYPOINT 容器启动后命令

2.编译镜像

image.png

3.打标签

 docker tag breeze-sentinel-dashboard:1.8.3 breezeworker/breeze-sentinel-dashboard:1.8.3

image.png

4.上传

 docker push breezeworker/breeze-sentinel-dashboard:1.8.3

image.png