docker是一个c/s架构,
主要有以下部件组成:
服务器(Docker daemon):后台运行的Docker daemon进程。Daemon进程用于管理Docker对象,包括镜像(images)、容器(containers)、网络(networks)、数据卷(datavolumes)。
这些就不进行一一介绍,有时间我会再写一个帖子;
docker是一个c/s架构,那么就是一个是server(服务)端,一个是client(客户)端。也就是说两台节点的docker就可以做一个条理清晰的docker主机。那么为什么这里我们要搭建三个节点的docker呢?
三个节点的docker是为了确保server端的进程不会down。也是基于这种情况,我们才会去搭建三节点的docker。
既然是server端和client端,client端的作用我们就不介绍了,用于这次的我的资源有限,我们只进行2台server端的搭建,至于client端只要安装docker,将各种参数添加进去就可以使用,如果有机会的话我将写一个完整的帖子却做3个节点的。
第一:我们来准备两台云主机,这样的话不使用虚拟机会节省作系统的时间,这也是我们使用云的原因
![](https://img6.php1.cn/3cdc5/999c/42f/4578229f018333f8.jpeg)
第二:我们去进行yum源的配置,如果你使用的服务器那就很简单了,如果使用的电脑的话需要将yum配置为三层的设置,笔记本属于二层设备,这个问题可以自己去研究一下。
第三:进行docker的安装,去填写基本的配置文件信息,进行导入registry和rancher/server镜像,registry在server1节点上,运行registry镜像,docker run -d -p 5000:5000 --restart=always --name registry docker.io/registry:latest 并且在server2节点pull rancher/server镜像
第四:重点在server1节点和server2节点安装mariadb服务,安装完成后
创建数据库cattle并设置编码为utf8。命令为:
CREATE DATABASEIF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
然后对数据库进行授权:
GRANT ALL ONcattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';
GRANT ALL ONcattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle';
注意:这里的数据库两个节点都去要进行配置
第五:在server1节点上启动rancher/server容器,命令为
docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 192.168.200.102:5000/rancher/server:v1.6.5 --db-host 192.168.200.103 --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle --advertise-address 192.168.200.102
请注意:192.168.200.102:5000/rancher/server为镜像名字
--db-host 为同步的另外一台云主机的IP
--db-port 为mariadb的监听端口 mariadb默认为3306
--db-user 是使用数据库的用户我们在创建数据库时的操作
--db-pass 是使用数据库用户的密码
--db-name 是我们需要使用调取的数据库
--advertise-address 这条命令是我们本机的IP地址
然后enter启动镜像
第六:在server2节点启动rancher/server镜像,命令为:
ocker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345
192.168.200.102:5000/rancher/server:v1.6.5 --db-host 192.168.200.103 --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle
--advertise-address 192.168.200.103
命令解析请看第五步
到此docker的两台server端搭建完成
稍等片刻,就可以在浏览器查看两个同步网页的页面了,两个页面的端口都是8080,至于那个9345端口,我感觉是一个备用端口,目前还不太清楚
![](https://img6.php1.cn/3cdc5/999c/42f/61dbc2122ae0d6d1.png)
![](https://img6.php1.cn/3cdc5/999c/42f/bcbe2066c7754e07.png)
docker两台server节点搭建ok,
docker三节点还有一个HA高可用部署,我将会再下次进行解析,和这次一样我将写个帖子。
纯属个人见解,大佬看见后可以再对我的错误进行纠正