Docker:2 构建并发布Java服务的示例
Posted OutPointException
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker:2 构建并发布Java服务的示例相关的知识,希望对你有一定的参考价值。
第一步:准备阶段
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镜像
example]# docker build -t mj/example . # 根据当前目录Dockerfile构建镜像
此时,启动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服务的示例的主要内容,如果未能解决你的问题,请参考以下文章
docker-compose 构建mongodb并导入基础数据示例