使用Docker打包自己的第一个镜像
一、打包自己的jdk镜像
1. 首先创建一个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文件
3.打标签
docker tag breeze-java:8 breezeworker/breeze-java:8
4.上传到自己的dockerHub中,前提是已经登录 docker login进行登录即可
docker push breezeworker/breeze-java:8
二、打包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.编译镜像
3.打标签
docker tag breeze-sentinel-dashboard:1.8.3 breezeworker/breeze-sentinel-dashboard:1.8.3
4.上传
docker push breezeworker/breeze-sentinel-dashboard:1.8.3