(11)SpringCloud:docker部署

一、docker简介

引擎,为应用创建轻量级、可移植、自给自足容器。本地编译测试通过的容器可批量在生产环境中部署,包括JVM、bare metal、OpenStack 集群和其他基础应用平台。

Docker通常用于如下场景:

web应用自动化打包和发布

自动化测试和持续集成、发布

服务型环境中部署调整数据库或其他的后台应用;

从头编译或者扩展现有的OpenShiftCloud Foundry平台搭建自己的PaaS环境

Docker 的优点

1、简化程序: 打包应用(及依赖包)到可移植容器,发布Linux 机器上,实现虚拟化,Docker管理,数天任务,数秒完成

2、避免选择恐惧症: 包含运行环境和配置,简化部署。如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

3、节省开支: 与云结合,云空间充分利用。解决硬件管理问题,改变虚拟化方式

二、准备工作

docker-maven-plugin构建docker镜像。linux系统,不建议windows

三、改造工程、构建镜像

(1)改造eureka-server工程

1)修改下配置文件:

2)编写dockerfile文件:

3)docker file编写指令:

FROM

FROM指令在Dockerfile其他指令,image(后续指令依赖)可是远程/本地。同一Dockerfile建立多个镜像用多个FROM指令。

VOLUME格式为:VOLUME ["/data"]

容器目录持久化数据,目录被容器用,可共享其他容器。

ADD

src目录复制文件到容器dest。src可是Dockerfile相对路径,可是URL压缩包

ENTRYPOINT

指定Docker容器启动时执行的命令,多次设置,只最后一个有效

EXPOSE

Docker容器对外端口号-p或-P启动。

4)构建镜像

执行构建docker镜像maven命令:

mvn clean 

mvn package docker:build  构建eureka-server镜像成功。

(2)同理构建service-hi镜像

pom文件导入同eurek-server

1)修改下配置文件:

defaultZone发现服务的host改为镜像名,dockefile 编写同eureka-server

2)构建镜像:

mvn clean

mvn package docker:build

运行docke的eureka-server 和service-hi镜像:

docker run -p 8761: 8761 -t forezp/eureka-server

docker run -p 8763: 8763 -t forezp/service-hi

访问localhost:8761

四、docker-compose启动镜像

 定义和运行多容器的Docker。在配置文件(yaml)配置应用服务,用命令,创建并启动所有服务。

编排镜像,启动镜像:

输入命令: docker-compose up

2个镜像按指定顺序启动

源码下载:https://github.com/forezp/SpringCloudLearning/tree/master/chapter11

五、docker-compose编排并启动镜像

Dockerfile移到eureka-server主目录改ADD相对路径:

同理改service-hi目录;构建镜像docker-compose-dev文件:

命令构建镜像并启动:

docker-compose -f    docker-compose.yml -f    docker-compose-dev.yml  up

源码下载:https://github.com/forezp/SpringCloudLearning/tree/master/chapter11-2

你可能感兴趣的:((11)SpringCloud:docker部署)