docker运行eureka服务注册中心
前言Docker作为一个容器无论在生产环境还是开发环境,真的是让小编爱不释手,使用以前电脑放在家里用来做自己的私人服务器使用docker技术安装各种不同的服务真的是爽歪歪。本文通过介绍在docker中运行eureka服务注册中心项目来跟大家介绍一下docker运行spring cloud工程。一、编写一个eureka服务注册中心并测试运行1、编辑pom文件在idea中创建一天eureka注...
前言
Docker作为一个容器无论在生产环境还是开发环境,真的是让小编爱不释手,使用以前电脑放在家里用来做自己的私人服务器使用docker技术安装各种不同的服务真的是爽歪歪。本文通过介绍在docker中运行eureka服务注册中心项目来跟大家介绍一下docker运行spring cloud工程。
一、编写一个eureka服务注册中心并测试运行
1、编辑pom文件
在idea中创建一天eureka注册中心的项目,编辑pom文件。
首先,加入eureka注册中心依赖
<dependencies>
<!--eureka服务端依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
如果在idea中运行eureka注册中心只添加上面依赖就可以了,如果要把项目使用docker容器中运行就需要将项目打成jar包,在编辑dockerfile文件构建成docker镜像文件,所以需要加入spring-boot-maven-plugin项目,用maven工具将maven打包成jar包,否则打包成jar包后找不到main函数。
<build>
<plugins>
<!--添加maven-plugin项目.使用maven将项目打包成jar包-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
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 MB
Step 1/5 : FROM java:8
---> d23bdf5b1b1b
Step 2/5 : MAINTAINER Strive to Positive Energy
---> Using cache
---> f5df4502e2b6
Step 3/5 : ADD eureka3200-1.0-SNAPSHOT.jar /eureka3200.jar
---> 20674a1a56c2
Removing intermediate container 55cf687bec5b
Step 4/5 : EXPOSE 3200
---> Running in 57e304e6fa6f
---> d0b85c07eddb
Removing intermediate container 57e304e6fa6f
Step 5/5 : ENTRYPOINT java -jar /eureka3200.jar
---> Running in 3c876154a91f
---> 828a05073472
Removing intermediate container 3c876154a91f
Successfully 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 files
Done
Sending build context to Docker daemon...
[==================================================>] 40.13MB
Done
Step 1/6 : FROM java:8
---> d23bdf5b1b1b
Step 2/6 : MAINTAINER Strive to Positive Energy
---> Running in 061f13264587
---> c9354e37b10d
Removing intermediate container 061f13264587
Step 3/6 : VOLUME /tmp
---> Running in 5967c64716b3
---> e917c8ebde82
Removing intermediate container 5967c64716b3
Step 4/6 : COPY /eureka3200-1.0-SNAPSHOT.jar /eureka3200.jar
---> 6a4c4cfd3d1f
Removing intermediate container 742e61aa7fbc
Step 5/6 : EXPOSE 3200
---> Running in 6c3ed881c55e
---> 4bbe1580bd8f
Removing intermediate container 6c3ed881c55e
Step 6/6 : ENTRYPOINT java -jar /eureka3200.jar
---> Running in 63a7dd42d0d9
---> f6a87bcd6d6d
Removing intermediate container 63a7dd42d0d9
Successfully built f6a87bcd6d6d
Creating container...
Container Id: 8677558291e0b4426dc7344a021e5438591555127374d34ecd5d0f1676c61962
Container name: 'eureka'
Attaching to container 'eureka'...
Starting container 'eureka'
'eureka Dockerfile: eureka3200/src/main/Dockerfile' has been deployed successfully.
在日志中可以看到构建运行的每个步骤,如果有错误可以在此查找。
更多推荐
所有评论(0)