搭建Docker集群测试环境--swarm、docker-compose、portainer

总体思路分为四部分

  第一部分  搭建docker-registry服务器

  第二部分 搭建docker测试环境

  第三部分 搭建dokcer-compose及docker swarm 集群建立

    1、搭建docker-compose 搭建过程见(https://www.cnblogs.com/SongShupengpeng/p/10268365.html

       为什么搭建docker-compose呢?我个人觉得通过docker swarm 来创建集群在创建容器时需要docker service create -d -p -v 等等一系列参数,这样会导致维护不方便,此时引入docker-compos会使用docker-compose.yml文件。在创建Containers时可以通过 docker stack -c docker-compose.yml来解决,大部分参数可配置进去而且便于维护

      ps:docker-compose.yml文件使用version: '3' 以上,docker 版本不要太低,否则不支持自带的swarm

               2、搭建swarm 

      ①虚拟机环境是CentOS7的,修改/lib/systemd/system/docker.service这个文件中的参数, 在第一行的后面直接加上:

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

并且用systemctl来管理启动docker服务。   

      ②开启swarm模式(此服务器命名为:A)

          docker swarm init --advertise-addr ip  --advertise-addr 对外暴露的ip地址 (关闭为:docker swarm leave --force )执行后如下(大概就是说node 服务器怎么加入):

            

 

      ③准备另一台机器(此服务器命名为B)同样开启swarm模式,然后执行A的node加入的命令如果忘记了可以在A执行如下命令        

       A服务器执行: docker swarm join-token worker
       去B服务器执行:docker swarm join --token SWMTKN-1-5crvsopmfdpnfz6ea1zlep2tw52nwnoeh8m3gukg34abzqqhcg-b6chuy40td8dvmtn6d8jx24ow 10.150.20.137:2377

          呃呃呃:。。遇到了问题,Error response from daemon: error while validating Root CA Certificate: x509: certificate has expired or is not yet valid 原因可能为两个服务器时间不同步,需同步时间(ntpdate cn.pool.ntp.org)然后再执行,会看到执行成功

      ④去A机器查看 docker node ls 

        

       ⑤开始测试看看情况 

          docker stack deploy -c ./docker-compose.yml 别名  这个时候会将两个node节点的服务器都启动 docker-compose.yml文件中的容器

            准备一个radis镜像作为测试对象 可以看到两台服务器上都已经构建了redis容器(未完待续。。。)                            

     ps:退出swarm集群用的命令是docker swarm leave,然而存在这样一种情况:没有完全退出swarm集群时就关掉了Docker服务。随后网络环境变化了(主机的IP变了)。此时若再systemctl start docker将会报错,通过systemctl status docker -l可以查看完整的报错信息,提示找不到老IP地址云云。其实这是启动swarm时报的错误。google了一下之后,发现比较方便的解决办法是手动修改/var/lib/docker/swarm下面的docker-state.json和state.json两个文件。把这两个json文件中原来的老地址都改成现在的新地址。应该就可以顺利启动了。

    第四部分  可视化页面管理

      可视化管理比较简单,在做完上边的配置后在本地启动一个portainer,portainer功能个人感觉比较强大(其他没用过 ̄□ ̄||)使用比较方便,可以集群管理、查看日志、进入命令行模式等,具体操作如下:    

第一步、下载镜像
        docker pull portainer/portainer
第二步、启动这个容器
        docker run -d -p 9000:9000 -v /var/portainer/data:/data/houbank/data --restart=always portainer/portainer
第三步、登录测试地址ip xx.xx.xx.x:9000
           设置管理密码
第四步、配置swarm地址即ip:2375自己起一个别名就可以了,下图为已经添加过的,新加页面;基本类似        

配置完成后基本能看到对应信息如下图(标记位置为切换视图,查看集群的信息):

 


  

 

ps:目前整理中,稍后更新。。。。

posted on 2019-05-09 14:10  松鼠砰砰  阅读(1727)  评论(0编辑  收藏  举报

导航