效果

注册

image.png

image.png

image.png
image.png
image.png
image.png
image.png
image.png

windows启动一个centerOS服务器作为服务端,有现成服务器的忽略这一步。

CenterOS下载地址

https://app.vagrantup.com/centos/boxes/7

windows中启动一个CenterOS虚拟机

image.png

虚拟机有线连接并ifconfig查看ip

image.png

前置操作(使用CenterOS服务器)

先升级yum源

yum update -y

下载docker安装脚本

curl -fsSL https://get.docker.com -o get-docker.sh

运行安装docker的脚本

sudo sh get-docker.sh

image.png

启动docker

systemctl enable docker
systemctl restart docker

关闭防火墙

systemctl disable firewalld
systemctl stop firewalld

image.png

关闭selinux

sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

创建swap(如果内存足够可以直接忽略)

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=8000
mkswap /var/swap.1
swapon /var/swap.1
sed -i '$a /var/swap.1 swap swap default 0 0' /etc/fstab

查看操作系统是否打开swap的使用(如果内存足够可以直接忽略)

sudo vim /etc/sysctl.conf 

# 将vm.swappiness的值修改为100(优先使用swap),没有该配置就加上
vm.swappiness = 100

最后执行以下命令使配置生效:

sysctl -p

部署服务

拉取镜像(根据你的CenterOS版本拉取对应镜像)

docker pull 1995chen/dnf:centos5-2.1.4.fix1
docker pull 1995chen/dnf:centos6-2.1.4.fix1
# 如何您需要使用centos7作为基础镜像的特殊需求,可以使用:
docker pull 1995chen/dnf:centos7-2.1.4.fix1
# 国内镜像无法拉取请使用[完整复制整行命令执行]
docker pull registry.cn-hangzhou.aliyuncs.com/1995chen/dnf:centos7-2.1.4.fix1 && docker tag registry.cn-hangzhou.aliyuncs.com/1995chen/dnf:centos7-2.1.4.fix1 1995chen/dnf:centos7-2.1.4.fix1
# 所有镜像版本列表请参考[记得点赞三连,帮助更多的人了解该镜像]:
https://hub.docker.com/repository/docker/1995chen/dnf

开始拉取

image.png

拉取成功

image.png

启动服务(里面的参数必须要修改!!!注意启动参数里面的centeros版本)

注意最后的centeros7、6、5要和上面拉取的镜像对应!

# 创建一个目录,这里以/data为例,后续会将该目录下的mysql以及data目录挂载到容器内部
mkdir -p /data/log /data/mysql /data/data
# 2.1.0版本镜像启动时会自动初始化mysql数据
# 启动服务
# PUBLIC_IP为公网IP地址,如果在局域网部署则用局域网IP地址,按实际需要替换
# GM_ACCOUNT为登录器用户名,建议替换
# GM_PASSWORD为登录器密码,建议替换
# DNF_DB_ROOT_PASSWORD为mysql root密码,容器启动是root密码会跟随该环境变量的变化自动更新
# WEB_USER为supervisor web管理页面用户名
# WEB_PASS为supervisor web管理页面密码(可以访问PUBLIC_IP:2000来访问进程管理页面)
# --shm-size=8g【不可删除】,docker默认为64M较小,需要增加才能保证运行
docker run -d -e PUBLIC_IP=x.x.x.x -e WEB_USER=root -e WEB_PASS=123456 -e DNF_DB_ROOT_PASSWORD=88888888 -e GM_ACCOUNT=gmuser -e GM_PASSWORD=gmpass -v /data/log:/home/neople/game/log -v /data/mysql:/var/lib/mysql -v /data/data:/data -p 2000:180 -p 3000:3306/tcp -p 7600:7600/tcp -p 881:881/tcp -p 7001:7001/tcp -p 7001:7001/udp -p 10011:10011/tcp -p 11011:11011/udp -p 10052:10052/tcp -p 11052:11052/udp -p 7200:7200/tcp -p 7200:7200/udp -p 2311-2313:2311-2313/udp --cap-add=NET_ADMIN --hostname=dnf --cpus=1 --memory=1g --memory-swap=-1 --shm-size=8g --name=dnf 1995chen/dnf:centos7-2.1.4.fix1

有时候可能启动不成功

可以restart一下
image.png

或者用docker-compose

services:

  dnf:
    hostname: dnf
    image: 1995chen/dnf:centos5-2.1.4.fix1
    # privileged: true
    cap_add:
      - NET_ADMIN
    environment:
      - TZ=Asia/Shanghai
      # 数据库root密码
      - DNF_DB_ROOT_PASSWORD=88888888
      - GM_ACCOUNT=gmuser
      - GM_PASSWORD=gmpass
      - GM_CONNECT_KEY=763WXRBW3PFTC3IXPFWH
      - GM_LANDER_VERSION=20180307
      # 手动指定对外IP
      - PUBLIC_IP=127.0.0.1
      # Netbird[可选配置][没有公网IP的可选私有内网接入]
      #- NB_SETUP_KEY=''
      #- NB_MANAGEMENT_URL=''
      # 开启DDNS[可选配置]
      # - DDNS_ENABLE=true
      # - DDNS_DOMAIN=''
    # shm_size: 8g【不可删除】,docker默认为64M较小,需要增加才能保证运行
    shm_size: 8g
    memswap_limit: -1
    mem_limit: 1g
    cpu_count: 1
    restart: always
    ports:
      - 2000:180/tcp              # supervisor web
      - 3000:3306/tcp             # mysql
      - 7600:7600/tcp             # 统一登陆器
      - 881:881/tcp               # 统一网关
      - 7001:7001/tcp             # df_channel_r
      - 7001:7001/udp             # df_channel_r
      - 7200:7200/tcp             # df_relay_r
      - 7200:7200/udp             # df_relay_r
      - 10011:10011/tcp           # df_game_r[ch.11]
      - 11011:11011/udp           # df_game_r[ch.11]
      - 10052:10052/tcp           # df_game_r[ch.52]
      - 11052:11052/udp           # df_game_r[ch.52]
      - 2311-2313:2311-2313/udp   # df_stun_r
    volumes:
      - ./data:/data
      - ./mysql:/var/lib/mysql
      - ./log:/home/neople/game/log

等待几分钟启动

访问你部署的ip:2000查看进程管理页面,出现如下页面说明你的程序启动成功了
image.png

如果是云服务器需要开放对应端口

image.png
image.png

添加本地host

image.png

下载客户端、网关和补丁

链接:https://pan.baidu.com/s/1OXWplfbkSXv3IyLFJhVtVA
提取码:6666

image.png

生成登陆器

配置网关

运行

image.png
下面红色字体就是上面docker执行运行命令中配置的内容,通信密钥固定为763WXRBW3PFTC3IXPFWH

image.png

生成登陆器

里面的ip是你虚拟器服务端的ip地址,注意游戏版本必须和网关中的一致

image.png

将登录器拷贝到游戏的目录下

image.png

双击登陆器运行

image.png