Weave部署Docker项目(下)

我们以商城项目中的goods-server + mgrsite为例,使用Weave + Docker进行部署

一. 使用assembly 打包项目

由于条件限制,我们就用本机+虚拟机来模拟部署,如果是两台主机只需执行weave connect masterIp 将多个主机加入到weave网络即可

先看一下结构图
image.png

注意:
主机IP: 192.168.82.242
虚拟机IP:192.168.217.128
为了验证主机和容器之间的通信,数据库部署在本机,大家也可以直接使用容器部署mysql
zookeeper / redis 使用Docker容器部署, 并且要指定IP, 因为项目中固定了连接的IP
mgrsite 和 goods-server 的IP可以自动分配, 没有影响. 但是因为使用Dubbo, goods-server在启动时会向注册中心注册服务地址, 所以在goods-server项目中配置 spring.dubbo.protocol.host=127.0.0.1 即可不要指定其他IP

两个项目中数据库/redis/zookeeper的配置

#数据库连接地址
spring.datasource.url=jdbc:mysql://192.168.82.242:3306/wolfcode_shop_goods
#注册中中心
spring.dubbo.registry.address=zookeeper://10.32.0.8:2181
# Redis服务器地址
spring.redis.host=10.32.0.9

二. 构建镜像

为每一个项目创建Dockerfile 并执行docker build -t imageName DockerfilePath 构建出镜像: goods-server / mgrsite

Dockerfile文件内容(就只贴一个了,也就改个压缩包名字而已)

#Version: 1.0
#Author: sky <123@126.com>
#基础镜像
FROM airdock/oracle-jdk
#维护者信息
MAINTAINER SKY
ADD shop-goods-server.tar.gz /opt/shop
##进入工作目录
WORKDIR /opt/shop/shop-goods-server
#设置容器启动时默认执行的命令
CMD ["bin/start.sh"]

三. 启动容器

(注意我并没有执行eval (weave env) , 所以此时docker run 启动的容器并没有自动加入weave 网络)

  1. 启动redis / zookeeper并指定IP (此处我们演示weave,就不再配置数据卷之类的配置)
    docker run -d —rm —name redis redis
    docker run -d —rm —name zookeeper zookeeper #执行这两个命令之前不要执行 eval $(weave env) , 因为会自动为容器分配ip
  2. 指定 redis / zookeeper 容器ip
    假设 redis 容器id : 558a zookeeper 容器id: 999a
    weave attach 10.32.0.8/12 zookeeper
    weave attach 10.32.0.9/12 redis
    指定的ip需要和项目中的配置对应
  3. 将docker 命令转交weave
    eval $(weave env)
    以后使用docker启动的容器会自动加入到weave网络并分配ip
  4. 启动 goods-server / mgrsite
    docker run -d —rm —name goods-server #会自动分配ip, 假设分配的ip 为10.32.0.3
    docker run -d —rm —name -p 8080:8080 mgrsite #第一次启动最好 使用-it 启动可以看到有没有报错
    特别注意mgrsite 启动的时候是映射出了8080端口的, 这样外部网络才能通过虚拟机访问到mgrsite
  5. weave expose
    将虚拟机加入到weave 网络
     这一步并不是必须的,主要为了检查一下goods-server 服务提供有没有问题
     执行telnet  10.32.0.3 20880 , 如果能够连接 即为服务提供正常, 也可以执行 ls -l 查看具体服务信息
    
  6. 访问
    在本机访问项目 :192.168.217.128:8080
    可以正常访问,说明部署成功
     使用weave 之后, 如果有主机要加入weave 只需 执行 weave connect mastIP 即可加入
     主机加入weave网络后可以随意加入Docker容器到weave网络, 即使主机和master主机处于不同网段,容器之间也可以进行通

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值