Docker (六) --------- Docker 应用部署

目录

  • 一、Docker 部署 SpringBoot 项目步骤
  • 二、Docker 部署 jar 包 SpringBoot 程序
    • 1. 定义 jar 程序 Dockerfile 文件
    • 2. 构建和运行 jar 包程序的镜像
    • 3. jar 包程序依赖容器环境准备
  • 三、Docker 部署 war 包 SpringBoot 程序
    • 1. 定义 war 包程序 Dockerfile 文件
    • 2. 构建和运行 war 包程序的镜像
    • 3. war 包程序依赖容器环境准备
    • 4. 运行 Docker 化的 war 包程序


一、Docker 部署 SpringBoot 项目步骤

步骤:

  • 将开发的 SpringBoot 程序达成 jar 包或 war 包
  • 将打好的 jar 包或 war 包上传到 Linux 某个目录下,比如:/root/docker
  • 定义 DockerFile 文件,用于创建项目镜像

二、Docker 部署 jar 包 SpringBoot 程序

1. 定义 jar 程序 Dockerfile 文件

首先我们先来创建 JDK 镜像
Docker (六) --------- Docker 应用部署_第1张图片
基于 centos 7 镜像,在 jdk 压缩包同级目录下创建一个Dockerfile,并填写以下内容。

vi Dockerfile 
#依赖镜像名称和ID
FROM centos
#指定镜像创建者信息
MAINTAINER fancy
#切换工作目录
WORKDIR /usr
RUN mkdir  /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u121-linux-x64.tar.gz /usr/local/java/

#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_121
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

Docker (六) --------- Docker 应用部署_第2张图片

执行命令构建镜像(在/user/java/Dockerfile所在目录执行)

docker build -t fancy_jdk1.8 .

Docker (六) --------- Docker 应用部署_第3张图片
这样自定义镜像就构建好了,我们再利用此自定义镜像来部署我们的程序
Docker (六) --------- Docker 应用部署_第4张图片
定义 jar 程序的 Dockerfile 与 jar 程序放在同一目录
Docker (六) --------- Docker 应用部署_第5张图片

2. 构建和运行 jar 包程序的镜像

构建镜像:docker build -t springboot-jar .

运行容器:docker run -d ac84bde53958

3. jar 包程序依赖容器环境准备

运行 Redis 容器:docker run -p 6379:6379 -d redis

运行 MySQL 容器:docker run -p 3306:3306 -e MYSQL_DATABASE=workdb -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

修改容器保存:docker commit 容器 id xxx(镜像名:tagxxx)
比如:docker commit b034f6d23833 fancy_mysql_new

三、Docker 部署 war 包 SpringBoot 程序

1. 定义 war 包程序 Dockerfile 文件

FROM fancy-tomcat-8.5.24
MAINTAINER fancy
ADD springboot-web-1.0.0.war /usr/local/apache-tomcat-8.5.24/webapps
EXPOSE 8080
CMD /usr/local/apache-tomcat-8.5.24/bin/catalina.sh run

2. 构建和运行 war 包程序的镜像

构建镜像:docker build -t springboot-web-war .

3. war 包程序依赖容器环境准备

与上面部署 jar 程序依赖的容器环境一样

4. 运行 Docker 化的 war 包程序

通过 windows 的浏览器访问,验证 SpringBoot 项目是否可以正常访问。

你可能感兴趣的