博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker运行eureka服务注册中心
阅读量:2347 次
发布时间:2019-05-10

本文共 4372 字,大约阅读时间需要 14 分钟。

前言

Docker作为一个容器无论在生产环境还是开发环境,真的是让小编爱不释手,使用以前电脑放在家里用来做自己的私人服务器使用docker技术安装各种不同的服务真的是爽歪歪。本文通过介绍在docker中运行eureka服务注册中心项目来跟大家介绍一下docker运行spring cloud工程。

一、编写一个eureka服务注册中心并测试运行

1、编辑pom文件

在idea中创建一天eureka注册中心的项目,编辑pom文件。

首先,加入eureka注册中心依赖

org.springframework.cloud
spring-cloud-starter-netflix-eureka-server

如果在idea中运行eureka注册中心只添加上面依赖就可以了,如果要把项目使用docker容器中运行就需要将项目打成jar包,在编辑dockerfile文件构建成docker镜像文件,所以需要加入spring-boot-maven-plugin项目,用maven工具将maven打包成jar包,否则打包成jar包后找不到main函数。

org.springframework.boot
spring-boot-maven-plugin

2、编辑eureka注册中心项目

编辑完pom注册中心之后,就可以正常编辑eureka注册中心的业务逻辑,这里不是本文重点,本文就不再赘述了。

3、打包eureka注册中心项目并运行

编辑完项目后可以使用maven工具的package命令,或者使用idea中的maven插件将项目打包,并使用java -jar命令测试运行。

二、构建docker镜像运行项目

1、使用docker命令构建运行eureka注册中心项目

1)编辑docker file文件

编辑docker file文件可以分为以下几个步骤:

  • 指定基础镜像

  • 添加镜像作者

  • 将可执行jar包添加到基础镜像的跟目录下

  • 暴露项目网络端口

  • 在基础镜像上中运行,即在基础镜像中执行的命令

    这里需要注意的是,第三个参数需要和ADD命令中的第二个参数相同,因为在ADD命令中已讲可执行jar包添加到名称为第二个参数的容器镜像中,所以二者需要相同,否则构建是还报找不到可执行jar包的错误。

# 指定基础镜像FROM java:8# 作者MAINTAINER Strive to Positive Energy# 把可执行jar包复制到基础镜像的跟目录下ADD eureka3200-1.0-SNAPSHOT.jar /eureka3200.jar# 镜像要暴露端口,如果需要使用端口,在执行run命令时使用-p命令映射EXPOSE 3200# 在镜像运行,为容器后期执行的命令ENTRYPOINT ["java","-jar","/eureka3200.jar"]

2)构建docker镜像

DockerFile文件和可执行jar包导入Linux系统,DockerFile文件中ADD命令可中执行jar没有写文件路径,默认与DockerFile在同一路径下,如果不在同一路径下需要在jar文件名前添加文件所在路径。

使用docker build命令构建docker镜像:

docker build -t s2pe/eureka:v1.0 .

参数介绍:

  • -t 为指定镜像名字和TAG

  • . 为当前目录,这里实际上是一个剩下文路径

构建结果:

Sending build context to Docker daemon 45.18 MBStep 1/5 : FROM java:8 ---> d23bdf5b1b1bStep 2/5 : MAINTAINER Strive to Positive Energy ---> Using cache ---> f5df4502e2b6Step 3/5 : ADD eureka3200-1.0-SNAPSHOT.jar /eureka3200.jar ---> 20674a1a56c2Removing intermediate container 55cf687bec5bStep 4/5 : EXPOSE 3200 ---> Running in 57e304e6fa6f ---> d0b85c07eddbRemoving intermediate container 57e304e6fa6fStep 5/5 : ENTRYPOINT java -jar /eureka3200.jar ---> Running in 3c876154a91f ---> 828a05073472Removing intermediate container 3c876154a91fSuccessfully built 828a05073472

3)运行构建的docker镜像

运行构建的docker镜像,访问docker容器:

docker run -d --name eureka -p 3200:3200 s2pe/eureka:v1.0

访问结果:

访问结果

2、使用Intellij IDEA中Docker插件构建运行eureka注册中心项目

1)准备工作

使用Intellij IDEA中的Docker插件也可以构建运行,首先需要在docker主机中配置远程访问docker,在idea中安装Docker插件,并连接docker宿主机。

2)配置运行环境

从Run->Edit Configrations进入配置页面,需要配饰信息和注意点如下:

  • Name

    运行环境名称,在idea中运行环境的名称,这里可以任意取名

  • Server

    选择已经配置好的docker宿主机。

  • DockerFile

    docker file文件

  • Context folder

    上下文配置文件夹,这里指的是docker file文件上下文路径,上文的Docker文件中没有指定jar包的文件路径,所以这里的上下文配置文件夹需要配置成可执行jar包生成的文件夹。利用maven插件默认将jar生成在工程目录下的target文件夹下,所以Context folder应该写到target文件夹。

  • Image tag

    docker镜像名称和TAG,对应docker build命令中的-t属性

  • Run build image

    勾选这个属性,构建镜像时先构建可执行jar包

  • Container name

    容器名称。

  • Publish expose ports to the host interfaces

    选的暴露端口形式,因为该进程值暴露一个端口,所以选择Specifiy,在Bind ports中现在暴露的端口。

  • Bind ports

    暴露端口,相当于docker run命令中的-p命令

  • Command preview

    可以查看构建和运行命令。

  • Active tool windows

    勾选工具栏窗口,可以看到构建运行中的日志。

    配置

3)运行配置查看结果

运行日志:

Deploying 'eureka Dockerfile: eureka3200/src/main/Dockerfile'...Building image...Preparing build context archive...[==================================================>]10/10 filesDoneSending build context to Docker daemon...[==================================================>] 40.13MBDoneStep 1/6 : FROM java:8 ---> d23bdf5b1b1bStep 2/6 : MAINTAINER Strive to Positive Energy ---> Running in 061f13264587 ---> c9354e37b10dRemoving intermediate container 061f13264587Step 3/6 : VOLUME /tmp ---> Running in 5967c64716b3 ---> e917c8ebde82Removing intermediate container 5967c64716b3Step 4/6 : COPY /eureka3200-1.0-SNAPSHOT.jar /eureka3200.jar ---> 6a4c4cfd3d1fRemoving intermediate container 742e61aa7fbcStep 5/6 : EXPOSE 3200 ---> Running in 6c3ed881c55e ---> 4bbe1580bd8fRemoving intermediate container 6c3ed881c55eStep 6/6 : ENTRYPOINT java -jar /eureka3200.jar ---> Running in 63a7dd42d0d9 ---> f6a87bcd6d6dRemoving intermediate container 63a7dd42d0d9Successfully built f6a87bcd6d6dCreating container...Container Id: 8677558291e0b4426dc7344a021e5438591555127374d34ecd5d0f1676c61962Container name: 'eureka'Attaching to container 'eureka'...Starting container 'eureka''eureka Dockerfile: eureka3200/src/main/Dockerfile' has been deployed successfully.

在日志中可以看到构建运行的每个步骤,如果有错误可以在此查找。

转载地址:http://kntvb.baihongyu.com/

你可能感兴趣的文章
Spring
查看>>
设计模式
查看>>
JVM
查看>>
Mybatis
查看>>
Redis 面试全攻略 3W字大集合
查看>>
SpringMVC
查看>>
秒懂GitHub用法
查看>>
Java开发技术大纲
查看>>
腾讯java面试
查看>>
Spring面试题和答案
查看>>
forward(转发)和redirect(重定向)的区别是什么?
查看>>
CSDN中转载博客(三步)
查看>>
JSP还用学吗?
查看>>
SpringBoot
查看>>
Hexo和github搭建个人主题博客
查看>>
(二)博客部署到云端
查看>>
SpringCloud详解
查看>>
Win10下安装卸载Oracle11g的教程及各种坑
查看>>
Zookeeper
查看>>
更新mysql5.7修改字符集
查看>>