Docker:2 构建并发布Java服务的示例

tosim 2020-06-05

第一步:准备阶段

1、Centos7系统(基础环境)

2、Centos以及安装好 Docker服务;(docker与docker-compose的安装会有专门的章节说明)

3、jdk8的安装包,作为jar运行的基础环境;本次使用的是:jdk-8u231-linux-x64.tar.gz

4、可运行的Jar,本次使用的jar名称:test-example-1.0-SNAPSHOT.jar

第二步:资源放在一个文件夹下,并创建Dockerfile和docker-compose.yml

~]# mkdir example
~]# mv jdk-8u231-linux-x64.tar.gz example/
~]# mv test-example-1.0-SNAPSHOT.jar  example/~]# cd example
1、创建Dockerfile
example]# vi Dockerfile

文件内容如下所示;

FROM centos
MAINTAINER mj

ENV LANG en_US.UTF-8

WORKDIR /home

RUN mkdir JDK

COPY jdk-8u231-linux-x64.tar.gz /home/
COPY test-example-1.0-SNAPSHOT.jar /home/

RUN tar zxf /home/jdk-8u231-linux-x64.tar.gz -C /home/JDK

ENV JAVA_HOME /home/JDK/jdk1.8.0_231
ENV PATH $PATH:$JAVA_HOME/bin

EXPOSE 8080

ENTRYPOINT ["java","-jar","test-example-1.0-SNAPSHOT.jar"," -Xms128m","-Xmx512m"]

2、创建docker-compose.yml文件

example]# vi docker-compose.yml

文件内容如下:

version: ‘3‘
services:
  example:
    image: mj/example
    container_name: mj-example
    restart: always
    ports:
      - 8080:8080

yml文件字段名称说明:

services: 指定容器服务,下面可配多个服务(进行服务编排)
example: 服务名字,自己指定.这里就代表我的eureka服务
image: 指定启动的镜像,就是上边通过Dockerfile构建的镜像
container_name: 给容器起一个名字
restart: 可重启,使用always就好
ports: 声明映射端口

example]# ls -al

如下图所示:

Docker:2 构建并发布Java服务的示例

资料都准备好了,接下来就是构建并启动容器,发布服务了;

第三步:构建Docker镜像

example]# docker build -t mj/example . # 根据当前目录Dockerfile构建镜像

Docker:2 构建并发布Java服务的示例

 此时,启动docker有两种方式:

1)通过docker命令直接启动发布docker容器服务;

example]# docker run -d -p 8080:8080  --name mj-example mj/example /bin/bash
 

2)通过docker-compse进行容器服务编排启动,即根据docker-compose.yml文件;

检查yml文件格式是否正确;example]# docker-compose config
启动容器服务
example]# docker-compose up
停止并删除容器服务
example]# docker-compose down
强制启动重新建立容器
example]# docker-compose up -d --force-recreate重新构建example]# docker-compose build 或者docker-compose up --build

容器启动后如下图所示:

Docker:2 构建并发布Java服务的示例

相关推荐