【NPS】从零到一:在CentOS上使用Docker Compose部署服务器端
1. 环境准备与系统配置
在开始部署NPS服务器端之前,我们需要确保CentOS系统已经做好充分准备。我推荐使用CentOS 7.6或更高版本,这个版本长期支持且稳定性经过验证。实际操作中我发现,新安装的纯净系统往往能避免很多依赖冲突问题。
首先更新系统基础组件是个好习惯:
yum update -y && yum install -y wget curl vim
内存和存储空间需要特别注意,NPS服务端虽然不占太多资源,但Docker运行至少需要2GB内存和20GB磁盘空间。我曾经在1GB内存的机器上尝试部署,结果容器频繁崩溃。检查资源使用这个命令很实用:
free -h && df -h
防火墙配置是另一个关键点。CentOS默认的firewalld会拦截Docker端口,建议先放行必要端口或暂时关闭防火墙测试:
systemctl stop firewalld && systemctl disable firewalld
如果系统开启了SELinux,可能会遇到权限问题。对于测试环境,可以将其设置为宽松模式:
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
2. Docker引擎安装与优化
Docker是容器化部署的基础,但在CentOS上安装有些特殊注意事项。官方推荐使用便捷脚本安装,但我会更建议分步骤操作以便更好控制过程。
先安装必要依赖:
yum install -y yum-utils device-mapper-persistent-data lvm2
添加Docker官方仓库(国内机器建议使用阿里云镜像加速):
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装指定版本Docker更稳妥,避免最新版可能的兼容问题:
yum install -y docker-ce-20.10.17 docker-ce-cli-20.10.17 containerd.io
配置Docker守护进程是很多人忽略的关键步骤。创建或修改/etc/docker/daemon.json文件:
{
"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
启动并设置开机自启:
systemctl daemon-reload
systemctl start docker && systemctl enable docker
验证安装时别只看版本号,实际运行个测试容器更可靠:
docker run --rm hello-world
3. Docker Compose部署实战
虽然可以直接用docker命令运行容器,但Docker Compose能更好地管理服务配置。在CentOS上安装需要注意Python环境兼容性。
先确保Python环境正常:
yum install -y python3 python3-pip
用pip安装时指定版本可以避免依赖冲突:
pip3 install docker-compose==1.29.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
验证安装成功后,建议创建软链接到/usr/bin目录:
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
准备NPS的工作目录时,结构清晰很关键。我习惯按服务分类存放:
mkdir -p /mnt/docker/nps/{conf,logs,data}
下载配置文件有个小技巧,先用curl检查URL有效性:
curl -I https://example.com/conf.zip
wget -O /mnt/docker/nps/conf.zip https://example.com/conf.zip
unzip -o /mnt/docker/nps/conf.zip -d /mnt/docker/nps/conf/
4. NPS服务配置详解
docker-compose.yaml文件是核心配置,我建议采用version 3.8语法以获得更好的兼容性。以下是个增强版配置示例:
version: '3.8'
services:
nps:
image: ffdfgdfg/nps
container_name: nps
restart: unless-stopped
volumes:
- /mnt/docker/nps/conf:/conf
- /mnt/docker/nps/logs:/var/log/nps
- /etc/localtime:/etc/localtime:ro
ports:
- "8800:8080" # 管理界面
- "8024:8024" # 客户端连接
- "8890:8890" # 域名解析
environment:
- TZ=Asia/Shanghai
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "3"
启动服务时添加--build参数可以强制重建容器,避免缓存问题:
docker-compose up -d --build
查看日志是排查问题的第一步,这个命令可以实时跟踪:
docker-compose logs -f --tail=100
5. 安全加固与日常维护
首次登录管理界面(IP:8800)后,立即修改默认密码admin/123是必须的。但更安全的做法是直接修改配置文件:
编辑/mnt/docker/nps/conf/nps.conf:
web_username=myadmin
web_password=StrongPass!2023
web_port = 8800
重启服务使配置生效:
docker-compose restart
定期备份配置和数据很重要,这个命令可以创建带时间戳的备份:
tar -czvf /backup/nps_$(date +%Y%m%d).tar.gz /mnt/docker/nps/conf
设置日志轮转可以防止磁盘爆满,在/etc/logrotate.d/下创建nps文件:
/mnt/docker/nps/logs/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 root root
}
更新NPS服务时,先拉取最新镜像再重建容器:
docker-compose pull && docker-compose up -d
更多推荐
所有评论(0)