dobbo + docker 的部署记录, 本文已废弃, 推荐查看局域网gitlab + maven + docker自动化测试部署实现

背景

平台原基于dubbox 2.8.4开发,使用如下架构:

  • zookeeper
  • dubbox 2.8.4
  • postgreSQL
  • RocketMQ
  • Redis

总共租用了5台服务器,每次更新部署都头大。再有dubbo更新,打算升级dubbox到dubbo 2.7.x,并使用docker进行镜像部署管理。现记录如下

说明:

  1. dubbo 样例直接使用 dubbo官网的demo, 文中不再列举
  2. 平台架构不变
  3. 服务器: centos 7.7

docker安装

  • 安装yum工具
yum install -y yum-utils device-mapper-persistent-data lvm2
  • 备份原仓库文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  • 添加阿里云仓库文件
yum-config-manager --add-repo http://mirrors.aliyun.com/repo/Centos-7.repo
  • 修改为基础仓库文件
mv /etc/yum.repos.d/Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
  • 添加docker的阿里云源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 更新缓存
yum makecache fast

如果通过 yum install docker 安装过1.x版本的docker,需要卸载

yum remove docker \
      docker-client \
      docker-client-latest \
      docker-common \
      docker-latest \
      docker-latest-logrotate \
      docker-logrotate \
      docker-engine
  • 安装docker-ce
yum install -y docker-ce docker-ce-cli containerd.io
  • 配置国内镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

使用的是阿里云的镜像加速服务

网络配置

使用overlay网络配置整个docker网络,新版docker的ovlerlay必须启用swarm才能创建。

服务器情况: 5台应用服务器,分为: manager(192.168.1.12), worker1(192.168.1.11)~worker4,同时manager也是一台worker机 只考虑服务器单网卡,单网络环境情况

  • 初始化swarm, manager机上执行, 并保存输出的 docker swarm join 语句
docker swarm init
  • 加入swarm, worker机上执行, 刚才保存的docker swarm join语句
docker swarm join --token <swarm join token> 192.168.1.12:2377
  • 创建overlay网络,manager上执行
docker network create -d overlay xy-docker --subnet 192.168.10.0/24 --attachable
  • 基于网络运行应用, manager
docker run -it --network xy-docker busybox
  • worker机上是看不到xy-docker的网络的,直接执行run就可以了
docker run -it -network xy-docker busybox
  • 互ping一下即可,发现网络已通

现在整个服务器基础已经创建完毕,下篇将说明如何修改dubbo项目

参考