Mac 安装 Docker,运行 Spring Boot 应用m

在 Mac 上安装 Docker

1、下载 Docker

参考文档:Install Docker for Mac

2、配置阿里的镜像加速器

  • 从 https://cr.console.aliyun.com/#/accelerator 获取专属加速器地址。
  • 点击 Docker -> Preferences -> Daemon -> Registry mirrors
  • 添加个人加速器地址 -> Apply & Restart

在 Docker 上启动 Spring Boot 应用

1、创建一个 Spring boot 项目

假设名为 hello

2、添加 Dockerfile

进入项目根路径,新建 Dockerfile,内容如下:

FROM maven:3.3.3

ADD pom.xml /tmp/build/
RUN cd /tmp/build && mvn -q dependency:resolve

ADD src /tmp/build/src
        #构建应用
RUN cd /tmp/build && mvn -q -DskipTests=true package \
        #拷贝编译结果到指定目录
        && mv target/*.jar /app.jar \
        #清理编译痕迹
        && cd / && rm -rf /tmp/build

VOLUME /tmp
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

由于项目使用 Maven 构建,故本次基础镜像选用 maven:3.3.3 官方镜像。 官方维护的 Maven 镜像依赖于 Java 镜像构建,所以我们不需要使用 Java 镜像。

因为 Spring Boot 框架打包的应用是一个包含依赖的 jar 文件,内嵌了 Tomcat 和 Jetty 支持,所以我们只需要使用包含 Java 的 Maven 镜像即可,不需要 Tomcat 镜像。

为了减少镜像大小,在执行 Maven 构建之后,清理了构建痕迹。

在 Dockerfile 文件的最后,使用 ENTRYPOINT 指令执行启动 Java 应用的操作。

Dockerfile 具体语法请参考:Dockerfile

3、进入 Docker 世界

在一切准备好之后,在应用根目录执行如下命令,构建 Docker 镜像:

docker build -t hello . 

构建成功后,从镜像启动容器:

docker run -d -p 8080:8080 hello

打开浏览器,或者使用 curl 访问地址 http://localhost:8080

你可能感兴趣的:(Mac 安装 Docker,运行 Spring Boot 应用m)