(十一)java版b2b2c社交电商spring cloud分布式微服务-docker部署spring cloud项目

spring cloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六
java

构建eureka-server镜像成功。linux

同理构建service-hi镜像web

  • pom文件导入同eurek-server
  • 修改下配置文件:

1、docker简介

Docker是一个开源的引擎,能够轻松的为任何应用建立一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试经过的容器能够批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其余的基础应用平台。
Docker一般用于以下场景:spring

  • web应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其余的后台应用;
  • 从头编译或者扩展示有的OpenShift或Cloud Foundry平台来搭建本身的PaaS环境。

Docker 的优势docker

    • 一、简化程序:
      Docker 让开发者能够打包他们的应用以及依赖包到一个可移植的容器中,而后发布到任何流行的 Linux 机器上,即可以实现虚拟化。Docker改变了虚拟化的方式,使开发者能够直接将本身的成果放入Docker中进行管理。方便快捷已是 Docker的最大优点,过去须要用数天乃至数周的 任务,在Docker容器的处理下,只须要数秒就能完成。数据库

    • 二、避免选择恐惧症:
      若是你有选择恐惧症,仍是资深患者。Docker 帮你 打包你的纠结!好比 Docker 镜像;Docker 镜像中包含了运行环境和配置,因此 Docker 能够简化部署多种应用实例工做。好比 Web 应用、后台应用、数据库应用、大数据应用好比 Hadoop 集群、消息队列等等均可以打包成一个镜像部署。windows

    • 三、节省开支:
      一方面,云计算时代到来,使开发者没必要为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思惟定势。Docker 与云的结合,让云空间获得更充分的利用。不只解决了硬件管理的问题,也改变了虚拟化的方式。bash

    • 2、准备工做

      环境条件:oracle

    • linux系统,不建议windows
    • docker最新版本
    • jdk 1.8
    • maven3.0
    • 3、改造工程、构建镜像

      改造eureka-server工程app

      在pom文件加上插件:

    • <build>
              <plugins>
                  <plugin>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-maven-plugin</artifactId>
                  </plugin>
                  <!-- tag::plugin[] -->
                  <plugin>
                      <groupId>com.spotify</groupId>
                      <artifactId>docker-maven-plugin</artifactId>
                      <version>0.4.3</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>
                  <!-- end::plugin[] -->
              </plugins>
          </build>复制代码

    • Spotify 的 docker-maven-plugin 插件是用maven插件方式构建docker镜像的。

    • imageName指定了镜像的名字,本例为 forep/eureka-server
    • dockerDirectory指定 Dockerfile 的位置
    • 修改下配置文件:

    • resources是指那些须要和 Dockerfile 放在一块儿,在构建镜像时使用的文件,通常应用 jar 包须要归入。

  • server:
      port: 8761
    eureka:
      instance:
        prefer-ip-address: true
      client:
        registerWithEureka: false
        fetchRegistry: false<br>复制代码

    编写dockerfile文件:

  • FROM frolvlad/alpine-oraclejdk8:slim
    VOLUME /tmp
    ADD eureka-server-0.0.1-SNAPSHOT.jar app.jar
    #RUN bash -c 'touch /app.jar'
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    EXPOSE 8761复制代码

  • docker file编写指令:

  • FROM
docker file编写指令:
 
FROM复制代码
  • FROM指令必须指定且须要在Dockerfile其余指令的前面,指定的基础image能够是官方远程仓库中的,也能够位于本地仓库。后续的指令都依赖于该指令指定的image。当在同一个Dockerfile中创建多个镜像时,可使用多个FROM指令。

  • VOLUME
  • 格式为:

VOLUME ["/data"]复制代码
  • 使容器中的一个目录具备持久化存储数据的功能,该目录能够被容器自己使用,也能够共享给其余容器。当容器中的应用有持久化数据的需求时能够在Dockerfile中使用该指令。

  • ADD
  • 从src目录复制文件到容器的dest。其中src能够是Dockerfile所在目录的相对路径,也能够是一个URL,还能够是一个压缩包

  • ENTRYPOINT
  • 指定Docker容器启动时执行的命令,能够屡次设置,可是只有最后一个有效。

  • EXPOSE
  • 为Docker容器设置对外的端口号。在启动时,可使用-p选项或者-P选项。

    构建镜像

    执行构建docker镜像maven命令:

mvn clean
mvn package docker:build复制代码
  • 构建eureka-server镜像成功。

    同理构建service-hi镜像

    • pom文件导入同eurek-server
    • 修改下配置文件:
  • eureka:
      client:
        serviceUrl:
          defaultZone: http://eureka-server:8761/eureka/ # 这个须要改成eureka-server
    server:
      port: 8763
    spring:
      application:
        name: service-hi复制代码
  • 电子商务社交平台源码请加企鹅求求:一零三八七七四六二六

相关文章
相关标签/搜索