目录
一、版本介绍
二、Docker环境的安装。
三、导入镜像
四、创建自定义网络
五、规划集群IP信息
六、运行主备集群容器
七、主备集群的验证
八、集群参数的解析
软硬件 | 版本 |
终端 | X86-64 架构 |
Docker | 19.0 及以上版本 |
达梦主备镜像离线包 | v8.1.1.190_x86_rh6_64_ent_docker |
systemctl disable firewalld
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
yum install -y yum-utils
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
1.进入存放主备镜像离线包的目录,使用docker命令导入主备镜像。命令如下:
docker load -i dmwatcher_v8.1.1.190_x86_rh6_64_ent_docker.tar
2. 导入完成后,可以使用 docker images 来查看导入的镜像。如果需要重新命名镜像可以使用 docker tag命令进行修改,命令如下:
docker tag e98bc2e95e94 dmwatcher:v8.1.1.190_x86_rh6_64_ent
其中e98bc2e95e94 为需要改名的IMAGE ID。
1.查看网络,Docker安装后会,默认创建三种网络,命令为:
docker network ls
bridge(桥梁模式):相当于Vmware中的Nat模式,容器使用独立network Namespace。默认情况下启动的Docker容器,都是使用 bridge,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就导致重启下,Docker的IP地址就变了。
host(主机模式):Docker 容器的网络会附属在主机上,两者是互通的。相当于Vmware中的桥接模式,与宿主机在同一个网络中,但没有独立IP地址。
none:该模式将容器放置在它自己的网络栈中,但是并不进行任何配置。实际上,该模式关闭了容器的网络功能,docker容器就不会分配局域网的IP。
在搭建一些集群软件的时候,组件和组件之间需要进行网络通信,如果没有固定分配的 IP ,容器提供的服务将是不可靠的。每次主机重启时,如果容器没有固定 IP ,容器的 IP 将由启动顺序决定。这将导致主备集群容器之间访问异常,从而使得服务提供失败。因此希望能够将容器的IP固定下来。
我们可以使用Docker默认的bridge网络来部署主备集群,为了加深Docker网络类型的使用,下面介绍如何在Docker中创建自定义网络以及达梦主备集群容器如何使用自定义网络。创建自定义网络的命令如下:
docker network create --subnet=172.20.0.0/24 net1
subnet(子网):设置前24位为网络位,后8位为主机位,该网段可用IP地址:172.20.0.1 到 172.20.0.254。
net1:自定义的网络名称,后面运行容器的时候要用到。使用docker network ls命令可以查看刚创建的网络net1的相关信息。
2. 创建docker自定义网络
docker network create --subnet=172.20.0.0/24 net1
达梦主备Docker镜像支持部署一主多备,只需指定集群节点数和对应节点序号即可,为 了说明方便,下面介绍一主一备集群的部署过程。集群IP规划如下:
集群角色 | IP |
监视器(monitor) | 172.20.0.2 |
主节点(primary) | 172.20.0.3 |
备节点(standby) | 172.20.0.4 |
达梦主备集群根据集群节点数需要运行多个容器,比如一主一备集群至少要运行三个 容器,即主节点容器、备节点容器、监视器容器。运行三个容器的Docker命令如下:
1.运行备节点容器
docker run -d -p 30236:5236 --restart=always --name dmwatcher_standby --privileged=true --net net1 --ip 172.20.0.4 -e DMWATCHER_ROLE=standby -e DW_NO=2 -e CLUSTER_IPS="172.20.0.2,172.20.0.3,172.20.0.4" -e LD_LIBRARY_PATH=/opt/dmdbms/bin -v /home/data/dw-data/dmwatcher_standby:/opt/dmdbms/data 192.168.101.88:5000/dmwatcher:v8.1.1.190_x86_rh6_64_ent_docker
2.运行监视器容器
docker run -d --restart=always --name dmwatcher_monitor --privileged=true --net net1 --ip 172.20.0.2 -e DMWATCHER_ROLE=monitor -e CLUSTER_IPS="172.20.0.2,172.20.0.3,172.20.0.4" -e LD_LIBRARY_PATH=/opt/dmdbms/bin -v /home/data/dw-data/dmwatcher_monitor:/opt/dmdbms/data 192.168.101.88:5000/dmwatcher:v8.1.1.190_x86_rh6_64_ent_docker
3.运行主节点容器
docker run -d -p 30136:5236 --restart=always --name dmwatcher_primary --privileged=true --net net1 --ip 172.20.0.3 -e PAGE_SIZE=16 -e CASE_SENSITIVE=1 -e DMWATCHER_ROLE=primary -e DW_NO=1 -e CLUSTER_IPS="172.20.0.2,172.20.0.3,172.20.0.4" -e LD_LIBRARY_PATH=/opt/dmdbms/bin -v /home/data/dw-data/dmwatcher_primary:/opt/dmdbms/data 192.168.101.88:5000/dmwatcher:v8.1.1.190_x86_rh6_64_ent_docker
达梦主备集群容器部署好后,可以通过查看监视器的日志来验证主备集群是否部署成功。 首先通过运行docker ps命令来获取当先运行的容器信息,如图所示:
再通过监视器的ID来查看监视器的日志,命令为:docker container logs 监视器ID,如图所示:
使用Docker命令运行达梦主备集群容器,里面带有很多参数,有些参数是Docker运行的参 数,有些参数是达梦主备镜像ENV的参数,其中ENV相关参数,上面运行主备集群容器只用到 了一部分,其他没指定的ENV参数都是用的默认值,一下是对两种参数的介绍:
1.Docker运行相关参数
参数名 | 参数解析 |
-d | 后台运行容器,并返回容器ID。 |
-p | 指定端口映射,格式为:主机(宿主)端口:容器端口。 |
--restart | 指定容器的重启策略,always表示在容器退出时总是重启容器。 |
--name | 为容器指定一个名称。 |
--privileged | 指定容器是否在特权模式下运行。 |
--net | 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型。 |
--ip | 指定容器IP为固定IP。 |
-e | 设置环境变量。 |
-v | 指定在容器创建的时候将宿主机目录挂载到容器内目录。 |
2.达梦主备集群镜像ENV参数说明:
参数名 | 参数默认值 | 参数解析 |
DMWATCHER_ROLE | primary | 达梦主备集群节点角色:主(primary)、备(standby)、监视器(monitor)。 |
PAGE_SIZE | 8 | 初始化实例参数:页大小,可选值4/8/16/32。 |
CASE_SENSITIVE | 1 | 初始化实例参数:是否大小写敏感。1:大小写敏感;0:大小写不敏感。 |
UNICODE_FLAG | 0 | 初始化实例参数:字符集选项。 0:GB18030;1:UTF-8;2:EUC-KR。 |
SYSDBA_PWD | SYSDBA001 | 初始化实例时设置SYSDBA的密码,长度至少9位。如主备容器指定SYSDBA_PWD,所有节点需要保持一致的密码。 |
BUFFER | 100 | 系统缓冲区大小,以M为单位,dm.ini里静态参数BUFFER,推荐值:可用容器内存的60%~80%。 |
OGUID | 453331 | 达梦主备集群唯一标识OGUID。 |
DW_NODES | 2 | 达梦主备集群节点数,不包含监视器节点。 |
DW_NO | 1 | 达梦主备集群节点序号,从1开始编号,监视器不用编号。 |
CLUSTER_IPS | 达梦主备集群所有节点容器IP,IP之间用“,”隔开,第一个IP是监视器IP,第二个IP是主节点IP,主节点IP之后的是所有备节点IP,此参数必须配置。 | |
CHG_PASSWD | dameng777 | 容器root用户密码。 |
LD_LIBRARY_PATH | 指定容器LD_LIBRARY_PATH环境变量。 |