dubbo 2.7.4.1转docker部署记录(1) 2020-05-21 09:58:59 | viperasi ## 背景 平台原基于dubbox 2.8.4开发,使用如下架构: * zookeeper * dubbox 2.8.4 * postgreSQL * RocketMQ * Redis 总共租用了5台服务器,每次更新部署都头大。再有dubbo更新,打算升级dubbox到dubbo 2.7.x,并使用docker进行镜像部署管理。现记录如下 > 说明: > 1. dubbo 样例直接使用 [dubbo官网](https://dubbo.apache.org/)的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项目 ### 参考 * [docker network](https://docs.docker.com/network/network-tutorial-overlay/)