在Mac上使用Docker部署Spring Boot项目

一.安装Docker

在Docker Store下载Mac版本,链接如下:

https://store.docker.com/editions/community/docker-ce-desktop-mac

安装成功,在顶部的菜单栏出现如下图标:

图1

二、搭建Spring Boot项目

在网上有很多文章说明怎样搭建Spring Boot项目,在这里不详细说了https://www.cnblogs.com/qiyexue/p/7121610.html

三、Spring Boot 项目添加 Docker 支持

  1. pom.xml的properties中添加Docker镜像名称,如下所示
   <properties>
   ​        <docker.image.prefix>springboot</docker.image.prefix>
   </properties>
  1. 在pom.xml的plugins添加构建Docker插件
   ​<build>
   ​    <plugins>
   ​        <plugin>
   ​            <groupId>org.springframework.boot</groupId>
   ​            <artifactId>spring-boot-maven-plugin</artifactId>
   ​        </plugin>
   ​        <!-- Docker maven plugin -->
   ​        <plugin>
                 <groupId>com.spotify</groupId>
   ​              <artifactId>docker-maven-plugin</artifactId>
   ​              <version>0.4.13</version>
   ​              <configuration>
   ​                  <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
   ​                  <dockerDirectory>src/main/docker</dockerDirectory>
   ​                  <resources>
   ​                        <resource>
   ​                            <targetPath>/</targetPath>
   ​                            <directory>${project.build.directory}</directory>
   ​                            <include>${project.build.finalName}.jar</include>
   ​                        </resource>
   ​                  </resources>
   ​              </configuration>
   ​          </plugin>
   ​    </plugins>
   ​</build>

四、创建Dockerfile文件

src/main/docker目录下创建Dockerfile文件

FROM java:8
EXPOSE 8080
VOLUME /tmp
ADD demo-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
  • FROM 表示要构建的镜像基于哪个镜像,java:8表示使用jdk8环境为基础镜像
  • EXPOSE 告诉Docker这个容器在运行时会监听哪些端口。
  • VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
  • ADD 表示把文件拷入docker ,并改名成 app.jar
  • ENTRYPOINT 表示使用指定命令在镜像运行时执行,启动jar。

五、构建镜像

  1. 测试打的jar是否正常

    在 Terminal终端进入项目路径,输入如下命令:
    mvn package

    启动项目
    java -jar demo-0.0.1-SNAPSHOT.jar

看到 Spring Boot 的启动日志后,在浏览器访问http://localhost:8080/,在页面看到打印

HelloWorld

表明环境配置没有问题。

  1. 构建镜像

    使用Dockerfileg构建镜像,进入项目目录执行如下命令:

    mvn clean package docker:buil

    第一次会启动慢一些,如果看到如下信息说明构建镜像成功:

    图3

  2. 使用 docker images 命令查看构建好镜像

    图4

     

    六、运行镜像

    1. 运行镜像

    springboot/demo是我们构建好的镜像,运行镜像命令:

    docker run -p 8080:8080 -t springboot/demo

  1. 查看正在运行镜像

使用docker ps 查看正在运行的镜像:

 

图5


可以看到我们构建的容器正在运行,使用浏览器访问:http://localhost:8080/,返回:
Hello World

 

  1. 停止镜像
    使用docker stop CONTAINER ID 停止镜像,上图所示CONTAINER ID是:6d2f2ddf460c,所以停止镜像命令:

    docker stop 6d2f2ddf460c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值