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

总体思路分为四部分

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

第二部分 搭建docker测试环境

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

为什么搭建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:目前整理中,稍后更新。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.Docker入门    1.1 Docker为什么火    1.2 Docker是什么    1.3 为什么要使用Docker    1.4 Docker与虚拟化区别    1.5 Docker Engine    1.6 Docker 体系结构    1.7 Docker 应用场景2.Docker安装    2.1 安装Docker2.1.1 调整镜像源从国内获取2.1.2 调整docker数据存储位置    2.2 如何快速运行一个容器3.Docker镜像    3.1 什么是镜像?    3.2 镜像能干什么?    3.3 如何使用镜像运行容器    3.4 镜像的基本操作。搜索、下载、查看、导入、导出、删除、上传4.Docker容器    4.1 什么是容器    4.2 容器能运行什么    4.3 启动第一个容器    4.4 容器运行的参数含义    4.5 如何运行一个自启动的容器    4.6 容器暴露    4.7 容器的整个生命周期5.Docker数据管理    5.1 数据持久化介绍    5.2 数据持久化-Data Volume (db)    5.3 数据持久化-Bind Mounting  ( web )6.Docker镜像构建    6.1 如何将运行的容器打包成镜像    6.2 如何实现自动化构建镜像    6.3 Dockerfile介绍    6.4 Dockerfile语法    6.5 dockerfile构建-案例1    6.5 dockerfile构建-案例2    6.7 dockerfile构建-案例3    6.8 dockerfile构建-案例4 (搞清楚ENTRYPOINT与CMD之间的关系与区别)7.Docker私有仓库    7.1 什么是私有仓库    7.2 为什么要有私有仓库    7.3 私有仓库种类    7.2 搭建私有仓库registry     7.3 为registry添加basic认证    7.3 如何将本地镜像存放私有仓库    7.4 如何获取私有仓库的docker镜像    7.5 企业级私有仓库harbor https    7.6 实战a主机推送镜像至仓库,b主机拉取镜像启动为容器8.Docker网络    8.1 docker容器互联是什么?--link    8.2 docker容器互联项目实践( python )    8.3 docker网络模式 ( bridge、host、container、none )9.Docker单机编排    9.1 Compose基本介绍    9.2 Compose三大概念   project(services、volumes、networks)    9.3 Compose编排博客系统    9.4 Compose编排Python-web    9.5 Compose实现水平扩展    9.6 Compose实现负载均衡    9.7 Compose编排投票系统 (python、node、java、db、redis)10.Docker图形化与监控    10.1 docker图形工具 Portainer    10.2 docker监控工具 cAdvisor

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值