使用Docker编排SpringCould服务–自整理
实现环境:CentOS7.2 docker1.13.1 docker-compose1.23.1 SpringBoot1.5.16 jdk1.8 maven3.5.4
SpringCould服务构建过程省略,从Docker安装开始。
一、Docker安装
Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:
yum install docker
安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:
service docker start
chkconfig docker on
LCTT 译注:此处采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法,如下:
systemctl start docker.service
systemctl enable docker.service
测试
docker version
输入上述命令,返回docker的版本相关信息,证明docker安装成功。
Docker 中国官方镜像加速可通过registry.docker-cn.com修改系统中docker对应的配置文件即可,如下:
vi /etc/docker/daemon.json
#添加后
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}
HelloWorld
运行下面的命令,将 image 文件从仓库抓取到本地。
docker pull library/hello-world
抓取成功以后,就可以在本机看到这个 image 文件了。
docker images
#显示结果
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hello-world latest f2a91732366c 3 months ago 1.848 kB
现在,运行这个 image 文件。
docker run hello-world
#显示结果
Hello from Docker!
This message shows that your installation appears to be working correctly.
…
输出这段提示以后,hello world就会停止运行,容器自动终止。有些容器不会自动终止,因为提供的是服务,比如Mysql镜像等。
二、Docker Compose 安装
方法一:
#下载
sudo curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#安装
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose version
方法二:
#安装pip
yum -y install epel-release
yum -y install python-pip
#确认版本
pip --version
#更新pip
pip install --upgrade pip
#安装docker-compose
pip install docker-compose
#查看版本
docker-compose version
推荐使用方法一进行安装,安装成功后输入docker-compose version会返回 docker-compose 的版本信息,如下:
[root@localhost ~]# docker-compose version
docker-compose version 1.19.0, build 9e633ef
docker-py version: 2.7.0
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t 3 May 2016
出现以上信息,表明 docker-compose 安装成功
安装补全工具(可选)
为了方便我们输入命令,也可以安装 Docker 的补全提示工具帮忙我们快速输入命令
#安装
yum install bash-completion
#下载docker-compose脚本
curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
三、SpringBoot pom.xml配置
在pom.xml文件中添加:
四、创建镜像
将springboot项目目录copy到linux服务器上,然后在各自服务根目录下执行mvn package打包并自动生成镜像,打完包差不多是这样子的,生产环境应该有个叫jenkins的去监听svn,自动打包生成镜像
五、创建并运行
在项目同级目录创建docker-compose.yml文件,添加以下内容,(Eureka做了Ha)
#表示该docker-compose.yml文件使用的是Version2 file format
version: '2'
#Version 2 file format的固定写法,为project定义服务
services:
#discovery服务
peer1:
#镜像名称
image: tsc/t-discovery:0.0.1-SNAPSHOT
#连接到ha的peer2
ports:
- "8761:8761"
environment:
- spring.profiles.active=peer1
#discovery-ha服务
peer2:
#主机名
image: tsc/t-discovery-ha:0.0.1-SNAPSHOT
hostname: peer2
ports:
- "8762:8762"
environment:
- spring.profiles.active=peer2
#用户服务
t-user:
image: tsc/t-user:0.0.1-SNAPSHOT
#通用服务
t-common:
image: tsc/t-common:0.0.1-SNAPSHOT
#网关服务
t-gateway:
image: tsc/t-gateway:0.0.1-SNAPSHOT
完成后,执行命令,两个discovery服务各启一个,user和common服务各启两个
docker-compose scale peer1=1 peer2=1 t-user=2 t-common=2 t-gateway=1