A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【郑州校区】学成在线-第20天-讲义-DevOps 四

3.2 部署微服务到Docker
3.2.1 安装Docker
Docker可以运行MACWindowsCentosDEBIANUBUNTU等操作系统上,提供社区版和企业版,本教程基
Centos安装DockerCentos6docker支持的不好,使用docker建议升级到centos7
1、在Centos7上安装Docker
直接通过yum安装即可:
yum install -y docker
启动dockerservice docker start
查询docker版本:docker version
2、在Centos6上安装Docker
rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y docker-io
service docker start
3.2.2 部署流程
本项目微服务采用SpringBoot开发,将每个微服务工程打成Jar包,最终在Docker容器中运行jar,部署流程如下:
1SpringBoot工程最终打成 Jar
2、创建Docker镜像
3、创建容器
4、启动容器
3.2.3 打包
1、使用maven的打包插件:
将下边的插件依赖拷贝到微服务工程中,本例子将学成在线的Eureka工程打包:
[AppleScript] 纯文本查看 复制代码
 <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐maven‐plugin</artifactId>
</plugin>
</plugins>
</build>


完整的Eureka工程pom.xml文件如下:
[AppleScript] 纯文本查看 复制代码
 <?xml version="1.0" encoding="UTF‐8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
[url]http://maven.apache.org/xsd/maven[/url]‐4.0.0.xsd">
<parent>
<artifactId>xc‐framework‐parent</artifactId>
<groupId>com.xuecheng</groupId>
<version>1.0‐SNAPSHOT</version>
<relativePath>../xc‐framework‐parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xc‐govern‐center</artifactId>
<dependencies>
<!‐‐ 导入Eureka服务的依赖 ‐‐>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring‐cloud‐starter‐netflix‐eureka‐server</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}‐${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐maven‐plugin</artifactId>
</plugin>
</plugins>
</build>
</project>


2maven打包
在工程目录运行:mvn clear package
或通过IDEA执行clear package打包命令。
打包成功,如下图:


3.2.4 创建镜像
将上一步的jar包拷贝到Linux服务器,准备创建镜像。
测试jar包是否可以运行,执行:java -jar xc-govern-center-1.0-SNAPSHOT.jar
xc-govern-center-1.0-SNAPSHOT.jar 位置编写Dockerfifile文件
[AppleScript] 纯文本查看 复制代码
 FROM java:8
ENV ARTIFACTID xc‐govern‐center
ENV ARTIFACTVERSION 1.0‐SNAPSHOT
ENV HOME_PATH /home
WORKDIR $HOME_PATH
ADD /$ARTIFACTID‐$ARTIFACTVERSION.jar $HOME_PATH/$ARTIFACTID.jar
ENTRYPOINT ["java", "‐jar", "xc‐govern‐center.jar"] 


Dockerfifile文件所在目录执行:docker build -t xc-govern-center:1.0-SNAPSHOT .
镜像创建成功,查询镜像:
[AppleScript] 纯文本查看 复制代码
 [root@localhost xc‐govern‐center]# docker images
REPOSITORY TAG IMAGE ID
CREATED SIZE
xc‐govern‐center 1.0‐SNAPSHOT
ad14dcce6666 35 seconds ago 684 MB 


3.2.5 创建容器
基于xc-govern-center:1.0-SNAPSHOT镜像创建容器,容器名称为xc-govern-center-test
[AppleScript] 纯文本查看 复制代码
 docker create ‐‐name xc‐govern‐center‐test ‐t ‐p 50101:50101 ‐e PORT=50101 ‐e
EUREKA_SERVER=http://192.168.101.64:50101/eureka/,[url]http://192.168.101.64:50102/eureka/[/url] xc‐
govern‐center:1.0‐SNAPSHOT 


容器创建成功,可通过docker ps -a命令查看
3.2.6 启动容器
docker start xc-govern-center-test
容器启动完成可以通过docker ps 查询正在运行中的容器。
[AppleScript] 纯文本查看 复制代码
 [root@localhost xc‐govern‐center]# docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
688cabeef187 xc‐govern‐center:1.0‐SNAPSHOT "java ‐jar xc‐gove..." 2 minutes ago
Up 2 minutes 0.0.0.0:50101‐>50101/tcp xc‐govern‐center‐
test



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马