不支持Windows
# 关闭宿主机防火墙
# Centos5-6
service iptables stop
chkconfig iptables off
# Centos7
systemctl disable firewalld
systemctl stop firewalld
systemctl disable firewalld.service
systemctl stop firewalld.service
# ubuntu
sudo ufw disable
修改/etc/sysconfig/selinux文件
将文件内的SELINUX设置为disabled就可以了。记得重启服务器。
/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
docker pull 1995chen/dnf:stable
# 懒人启动方式
# 自定义其中环境变量所有的环境变量都是可以改的
# 初始化[改脚本运行时间较长,可能要10多分钟,主要是将sql导入数据库]
# 将root密码重置为DNF_DB_ROOT_PASSWORD
docker run --rm -e DNF_DB_ROOT_PASSWORD=88888888 -v /data/log:/home/neople/game/log -v /data/mysql:/var/lib/mysql -v /data/data:/data 1995chen/dnf:stable /bin/bash /home/template/init/init.sh
# 遇到CoreDump就多跑几次,机器内存不足容易OOM建议上8G的交换空间
# 使用该DNF_DB_ROOT_PASSWORD密码给game账户赋予权限,设置其只允许本地访问增加安全性
docker run -d -e PUBLIC_IP=x.x.x.x -e DNF_DB_ROOT_PASSWORD=88888888 -e GM_ACCOUNT=gm_user -e GM_PASSWORD=gm_pass -v /data/log:/home/neople/game/log -v /data/mysql:/var/lib/mysql -v /data/data:/data -p 3000:3306/tcp -p 7600:7600/tcp -p 881:881/tcp -p 20303:20303/tcp -p 20303:20303/udp -p 20403:20403/tcp -p 20403:20403/udp -p 40403:40403/tcp -p 40403:40403/udp -p 7000:7000/tcp -p 7000:7000/udp -p 7001:7001/tcp -p 7001:7001/udp -p 7200:7200/tcp -p 7200:7200/udp -p 10011:10011/tcp -p 31100:31100/tcp -p 30303:30303/tcp -p 30303:30303/udp -p 30403:30403/tcp -p 30403:30403/udp -p 10052:10052/tcp -p 20011:20011/tcp -p 20203:20203/tcp -p 20203:20203/udp -p 30703:30703/udp -p 11011:11011/udp -p 2311-2313:2311-2313/udp -p 30503:30503/udp -p 11052:11052/udp --cpus=1 --memory=1g --memory-swap=-1 --shm-size=8g 1995chen/dnf:stable
version: "2.3"
networks:
local:
ipam:
config:
- subnet: 172.20.0.0/16
services:
init-dnf:
image: 1995chen/dnf:stable
environment:
- TZ=Asia/Shanghai
# 数据库root密码[首次初始化会修改root密码]
- DNF_DB_ROOT_PASSWORD=88888888
command: ['/bin/bash', '/home/template/init/init.sh']
networks:
- local
restart: "no"
volumes:
- ./data:/data
- ./mysql:/var/lib/mysql
dnf:
image: 1995chen/dnf:stable
depends_on:
- init-dnf
environment:
- TZ=Asia/Shanghai
# 这里填写你的IP地址
- PUBLIC_IP=127.0.0.1
# 数据库root密码
- DNF_DB_ROOT_PASSWORD=88888888
- GM_ACCOUNT=gm_user
- GM_PASSWORD=gm_pass
shm_size: 8g
memswap_limit: -1
mem_limit: 1g
cpu_count: 1
networks:
- local
restart: always
ports:
- 3000:3306/tcp # mysql 数据库
- 7600:7600/tcp # DnfGateServe 网关
- 881:881/tcp # DnfGateServe 网关
- 20303:20303/tcp # df_dbmw_r
- 20303:20303/udp # df_dbmw_r
- 20403:20403/tcp # df_dbmw_r
- 20403:20403/udp # df_dbmw_r
- 40403:40403/tcp # df_manager_r
- 40403:40403/udp # df_manager_r
- 7000:7000/tcp # df_bridge_r
- 7000:7000/udp # df_bridge_r
- 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
- 31100:31100/tcp # df_community
- 30303:30303/tcp # df_monitor_r
- 30303:30303/udp # df_monitor_r
- 30403:30403/tcp # df_guild_r
- 30403:30403/udp # df_guild_r
- 10052:10052/tcp # df_game_r
- 20011:20011/tcp # df_game_r
- 20203:20203/tcp # df_dbmw_r
- 20203:20203/udp # df_dbmw_r
- 30703:30703/udp # df_coserver_r
- 11011:11011/udp # df_game_r
- 2311-2313:2311-2313/udp # df_stun_r
- 30503:30503/udp # df_statics_r
- 11052:11052/udp # df_game_r
volumes:
- ./data:/data
- ./mysql:/var/lib/mysql
- ./log:/home/neople/game/log
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: dnf
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10G
---
apiVersion: v1
kind: ConfigMap
metadata:
name: dnf
data:
dnf_public_ip: 192.168.0.203
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: dnf
data:
mysql_root_password: ODg4ODg4ODg=
gm_account: Y2hlbmxpYW5n
gm_password: RGFuZGFuMjY5MTMy
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dnf
spec:
replicas: 1
selector:
matchLabels:
app: dnf
template:
metadata:
labels:
app: dnf
spec:
restartPolicy: Always
nodeName: centos-02
volumes:
- name: dnf
persistentVolumeClaim:
claimName: dnf
- name: memory
emptyDir:
medium: Memory
sizeLimit: 8Gi
initContainers:
- name: init-data
env:
- name: TZ
value: "Asia/Shanghai"
- name: DNF_DB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: mysql_root_password
name: dnf
image: 1995chen/dnf:stable
imagePullPolicy: IfNotPresent
command: ["/bin/bash"]
args: ["/home/template/init/init.sh"]
volumeMounts:
- mountPath: /data
name: dnf
subPath: data
- mountPath: /var/lib/mysql
name: dnf
subPath: mysql
containers:
- name: dnf
imagePullPolicy: IfNotPresent
image: 1995chen/dnf:stable
ports:
- name: mysql
containerPort: 3306
protocol: TCP
hostPort: 3000
- name: gate-tcp1
containerPort: 7600
protocol: TCP
hostPort: 7600
- name: gate-tcp2
containerPort: 881
protocol: TCP
hostPort: 881
- name: dbmw-tcp1
containerPort: 20303
protocol: TCP
hostPort: 20303
- name: dbmw-tcp2
containerPort: 20403
protocol: TCP
hostPort: 20403
- name: dbmw-tcp3
containerPort: 20203
protocol: TCP
hostPort: 20203
- name: dbmw-udp1
containerPort: 20403
protocol: UDP
hostPort: 20403
- name: dbmw-udp2
containerPort: 20303
protocol: UDP
hostPort: 20303
- name: dbmw-udp3
containerPort: 20203
protocol: UDP
hostPort: 20203
- name: manager-tcp1
containerPort: 40403
protocol: TCP
hostPort: 40403
- name: manager-udp1
containerPort: 40403
protocol: UDP
hostPort: 40403
- name: bridge-tcp1
containerPort: 7000
protocol: TCP
hostPort: 7000
- name: bridge-udp1
containerPort: 7000
protocol: UDP
hostPort: 7000
- name: channel-tcp1
containerPort: 7001
protocol: TCP
hostPort: 7001
- name: channel-udp1
containerPort: 7001
protocol: UDP
hostPort: 7001
- name: game-tcp1
containerPort: 10011
protocol: TCP
hostPort: 10011
- name: game-tcp2
containerPort: 10052
protocol: TCP
hostPort: 10052
- name: game-tcp3
containerPort: 20011
protocol: TCP
hostPort: 20011
- name: game-udp1
containerPort: 11011
protocol: UDP
hostPort: 11011
- name: game-udp2
containerPort: 11052
protocol: UDP
hostPort: 11052
- name: community-tcp1
containerPort: 31100
protocol: TCP
hostPort: 31100
- name: monitor-tcp1
containerPort: 30303
protocol: TCP
hostPort: 30303
- name: monitor-udp1
containerPort: 30303
protocol: UDP
hostPort: 30303
- name: relay-tcp1
containerPort: 7200
protocol: TCP
hostPort: 7200
- name: relay-udp1
containerPort: 7200
protocol: UDP
hostPort: 7200
- name: guild-tcp1
containerPort: 30403
protocol: TCP
hostPort: 30403
- name: guild-udp1
containerPort: 30403
protocol: UDP
hostPort: 30403
- name: coserver-udp1
containerPort: 30703
protocol: UDP
hostPort: 30703
- name: stun-udp1
containerPort: 2311
protocol: UDP
hostPort: 2311
- name: stun-udp2
containerPort: 2312
protocol: UDP
hostPort: 2312
- name: stun-udp3
containerPort: 2313
protocol: UDP
hostPort: 2313
- name: statics-udp1
containerPort: 30503
protocol: UDP
hostPort: 30503
env:
- name: TZ
value: "Asia/Shanghai"
- name: PUBLIC_IP
valueFrom:
configMapKeyRef:
key: dnf_public_ip
name: dnf
- name: DNF_DB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: mysql_root_password
name: dnf
- name: GM_ACCOUNT
valueFrom:
secretKeyRef:
key: gm_account
name: dnf
- name: GM_PASSWORD
valueFrom:
secretKeyRef:
key: gm_password
name: dnf
volumeMounts:
- mountPath: /data
name: dnf
subPath: data
- mountPath: /var/lib/mysql
name: dnf
subPath: mysql
- mountPath: /home/neople/game/log
name: dnf
subPath: log
- mountPath: /dev/shm
name: memory
当PUBLIC_IP修改时,程序会自动修改,不需要手工做其他操作。 当数据库root密码修改时,下次要重新启动时DNF_DB_ROOT_PASSWORD使用最新的root密码
https://github.com/1995chen/dnf
亲测可用,不喜勿喷。 虽然支持外网,但是千万别拿来开服。只能拿来学习使用
Content type
Image
Digest
Size
540.6 MB
Last updated
over 4 years ago
docker pull ly6610115/dnf:centos7-latest