docker部署springboot项目

docker部署springboot项目

1. 项目打包,注意:打包的时候 pom.xml 要有下列配置

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <!-- 加入下面两项配置 -->
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <includeSystemScope>true</includeSystemScope>
    </configuration>
</plugin>

2. 编写 Dockerfile 文件

# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER hzlei <hzlei@foxmail.com>
# VOLUME 指定了临时文件目录为 /tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的 /tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD demo-1.0-SNAPSHOT.jar app.jar
# 声明需要暴露的端口
EXPOSE 8848
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Dockerfile 文件说明

FROM 基础镜像,当前镜像是基于哪个镜像的
MANINTAINER 镜像维护者的姓名和邮箱地址
VOLUME 容器数据卷,用于数据保存和持久化工作,也可以叫缓存目录吧
ADD 将宿主机目录下的文件拷贝进镜像且 ADD 命令会自动处理 URL 和解压 tar 压缩包
EXPOSE 当前容器对外暴露出的端口
RUN 容器构造时需要运行的命令
ENTRYPOINT 指定一个容器启动时要运行的命令。ENTRYPOINT 的目的和 CMD 命令一样,都是在指定容器启动程序及参数
CMD 指定一个容器启动时要运行的命令。Dockerfile 可以有多个 CMD 指令,但只要最后一个生效,CMD会被docker run 之后的参数替换

3. 将 Dockerfile 文件和打包后的 jar 包,放到服务器的同一文件夹下

4. 创建镜像

docker build -t docker-test .
# 参数说明
-t	表示将新镜像命名为 docker-test
.	末尾的 . 指明 build context 为当前目录
Docker 默认会从 build context 中查找 Dockerfile 文件,我们也可以通过 -f 参数指定 Dockerfile 位置

5. 镜像创建完毕之后,可通过 docker images 查看创建好的镜像

6. 运行镜像

docker run -d -p 8848:8848 docker-test
# 参数说明
run	运行镜像
-d	让容器后台运行
-p	做端口映射,将服务器中的 8848 端口映射进容器中的 8848(项目中配置的是8848)端口
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值