Docker系列四——Dockerfile制作镜像部署springboot项目

一、Dockerfile介绍

Dockerfile文件以书面形式说明了如何构建一个Docker镜像,Docker镜像通常包含如下内容:

  • 首先需要一个基本的Docker镜像,在这个基础Docker镜像上构建自己的Docker镜像。
  • 一组需要安装在Docker镜像中的工具和应用。
  • 一组需要复制到Docker镜像中的文件(比如配置文件)。
  • 可能需要在防火墙中打开的网络(TPC/UDP)端口或其他。

1.1 Dockerfile的结构

如下是为名为pai-sn的springboot项目编写的Dockerfile:

##FROM命令用于指定Docker基础镜像,如是从java8镜像开始
FROM java:8
##MAINTAINER命令用于说明谁在维护这个Dockerfile文件
MAINTAINER Double<test@qq.cn>
##ENV命令是在Docker镜像中设置环境变量,此环境变量可用于CMD命令在Docker镜像内部启动应用程序
ENV TZ=Asia/Shanghai
##RUN可以在Docker镜像中执行命令行指令,执行时机是Docker镜像构建过程中,
##所以RUN命令只会执行一次。RUN命令可用于在Docker镜像中安装应用程序、
##提取文件或其他命令行功能,这些操作只需要执行一次,以供Docker镜像后续使用
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN mkdir -p /app/project
##WORKDIR命令指明了Docker镜像中的工作目录,工作目录将对WORKDIR指令之后的所有命令生效
WORKDIR /app/project
##EXPOSE命令将对外开放Docker容器中的网络端口
EXPOSE 8080
##ADD命令可以复制并提取JAR文件到Docker镜像中
ADD ./pai-sn.jar ./
##ENTRYPOINT命令为从该Docker镜像启动Docker容器提供入口点,入口点是Docker容器启动时执行的应用程序或命令,如下是执行java命令启动jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "pai-sn.jar"]

1.2 Docker基础镜像

Docker镜像是由层组成,每一层都会为最终的Docker镜像添加一些内容。每一个层实际上都是一个单独的Docker镜像,所以说,Docker镜像是由一个或多个层镜像组成,我们可以在其上添加自己的层。每一层都可以在不同镜像间共享,以减小镜像实际占用空间的大小。

当通过Dockerfile文件指定自己的Docker镜像时,通常是从一个Docker基础镜像开始。这是另一个Docker镜像,可以在其上构建自己的Docker镜像。这个Docker基础镜像本身可能也包含多个层,并且是基于另一个基础镜像构建的。

二、制作镜像

2.1 环境准备

  • CentOS7服务器一台:192.168.131.136,服务器上安装docker
  • springboot项目的demo一个:pai-sn

2.2 准备jar包

打包得到pai-sn.jar
在这里插入图片描述
上传到服务器,文件共享或者ftp上传,编写Dockerfile文件,内容上面已展示
在这里插入图片描述

2.3 执行命令

docker build -t会找到当前目录的Dockerfile执行

## pai-sn:1.0为镜像名称
docker build -t pai-sn:snapshot .

得到镜像
在这里插入图片描述

三、启动容器

## -it 交互启动,-p端口映射 ,--name 容器名称 后面是镜像名称,打开shell
 docker run -it -p 8080:8080 --name pai-sn pai-sn:snapshot /bin/bash

容器已启动
在这里插入图片描述
推送镜像到harbor,harbor安装搭建请转到:Docker本地私有镜像仓库Harbor搭建及配置

docker tag pai-sn:snapshot 192.168.136.1315001/library/pai-sn:alpine
docker push 192.168.136.131:5001/library/pai-sn:alpine

在这里插入图片描述
查看harbor
在这里插入图片描述

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值