Docker一键部署定西档案培训环境实操指南
一、环境准备与基础依赖安装
在开始搭建定西档案培训平台之前,我们需要准备一台干净的服务器。推荐使用CentOS 7.9或Ubuntu 20.04及以上版本。为了确保部署过程顺利,首先需要关闭防火墙核心防护或放行必要端口,并安装Docker及Docker Compose环境。以下是具体的操作步骤。
1. 安装Docker环境
直接执行以下命令,使用阿里云镜像源快速安装Docker。这一步会自动处理依赖关系,无需手动配置yum源。
```bash curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun ```安装完成后,启动Docker服务并设置为开机自启。
```bash systemctl start docker systemctl enable docker ```2. 安装Docker Compose
为了方便管理容器,我们需要安装Docker Compose。由于官方源下载速度较慢,这里直接从GitHub国内镜像下载二进制文件。
```bash curl -L https://get.daocloud.io/docker/compose/releases/download/v2.20.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ```输入 docker-compose -v 验证安装,如果显示版本号则说明环境准备就绪。
二、规划服务器目录结构
为了保证档案培训资料的有序管理,我们不能将文件随意散落在服务器的各个角落。我们需要在根目录下创建一个专门的 dingxi-training 目录,并在其内部规划好配置文件、静态资源(PDF、视频)及日志的存放位置。
执行以下命令一键创建标准目录结构:
```bash mkdir -p /data/dingxi-training/{html,conf,data/{videos,pdfs,images},logs} ```目录说明如下:
- html:存放前端页面或欢迎页。
- conf:存放Nginx配置文件。
- data/videos:存放培训相关的视频资料。
- data/pdfs:存放档案管理的PDF文档。
- data/images:存放培训相关的图片资料。
- logs:存放Nginx的访问与错误日志,便于排查问题。
三、配置身份验证与访问安全
档案资料通常涉及内部信息,因此必须配置身份验证,防止未授权人员访问。我们将使用 htpasswd 工具生成密码文件,并在Nginx中开启基础认证。
1. 安装生成工具
CentOS系统执行:
```bash yum install -y httpd-tools ```Ubuntu系统执行:
```bash apt-get install -y apache2-utils ```2. 生成密码文件
在 /data/dingxi-training/conf 目录下生成一个名为 .htpasswd 的文件。这里创建一个用户名为 dxadmin,密码为 Dx@2024Train 的用户(请根据实际需求修改密码)。
```bash htpasswd -bc /data/dingxi-training/conf/.htpasswd dxadmin Dx@2024Train ``>执行 cat /data/dingxi-training/conf/.htpasswd 可以看到生成的加密字符串,此文件将用于Nginx配置。
四、编写Nginx配置文件
我们将使用Nginx作为Web服务器,利用其高效的静态文件处理能力来分发培训资料。配置文件需要开启目录浏览功能(方便学员直接下载文件)、开启中文支持(防止乱码)以及配置刚才生成的身份验证。
创建并编辑配置文件:
```bash vi /data/dingxi-training/conf/nginx.conf ```将以下完整配置内容复制粘贴进去,不要遗漏任何一个分号或大括号:
```nginx worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; 设置字符集为utf-8,防止中文文件名乱码 charset utf-8; 开启身份验证 auth_basic "Dingxi Archives Training System"; auth_basic_user_file /etc/nginx/.htpasswd; 根目录设置 location / { root /usr/share/nginx/html; index index.html index.htm; } 视频资料目录配置 location /videos { alias /data/videos; autoindex on; 开启目录浏览 autoindex_exact_size on; 显示文件大小 autoindex_localtime on; 显示本地时间 } PDF文档目录配置 location /pdfs { alias /data/pdfs; autoindex on; autoindex_exact_size on; autoindex_localtime on; } 图片资料目录配置 location /images { alias /data/images; autoindex on; autoindex_exact_size on; autoindex_localtime on; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } } ```五、编写Docker Compose编排文件
通过Docker Compose,我们可以一键拉起Nginx容器,并将宿主机的目录映射到容器内部,实现数据的持久化和配置的热加载。

在 /data/dingxi-training 目录下创建 docker-compose.yml 文件:
```bash vi /data/dingxi-training/docker-compose.yml ```填入以下内容,注意卷映射的路径必须与前面创建的目录完全一致:
```yaml version: '3.8' services: nginx-training: image: nginx:1.24-alpine container_name: dingxi-training-web restart: always ports: - "8080:80" volumes: 挂载主配置文件 - ./conf/nginx.conf:/etc/nginx/nginx.conf:ro 挂载密码文件 - ./conf/.htpasswd:/etc/nginx/.htpasswd:ro 挂载静态资源目录 - ./data/videos:/data/videos:ro - ./data/pdfs:/data/pdfs:ro - ./data/images:/data/images:ro 挂载日志目录 - ./logs:/var/log/nginx ```注意:这里将Nginx的默认80端口映射到了宿主机的8080端口,如果服务器有防火墙限制,请确保放行8080端口。使用 :ro 标志挂载配置和资源文件,可以提高安全性,防止容器内部进程意外修改文件。
六、启动服务与功能验证
配置文件编写完毕后,即可启动服务。
1. 启动容器
进入项目目录并执行启动命令:
```bash cd /data/dingxi-training docker-compose up -d ``>2. 验证服务状态
执行 docker ps,查看容器状态是否为 Up。如果启动失败,执行 docker-compose logs 查看错误日志,通常是配置文件路径或语法错误。
3. 浏览器访问测试
打开浏览器,输入服务器IP加端口,例如 http://192.168.1.100:8080。此时应该会弹出登录窗口。输入之前设置的用户名 dxadmin 和密码 Dx@2024Train。
登录成功后,在地址栏后分别输入 /videos、/pdfs 或 /images,即可看到对应的目录列表页面。
七、上传培训资料与日常维护
平台搭建好只是第一步,如何高效地上传资料是关键。
1. 上传资料
将准备好的培训视频(MP4格式)、档案手册(PDF格式)上传到服务器对应的目录中:
```bash 示例:上传一个名为“档案数字化规范.pdf”的文件 mv 档案数字化规范.pdf /data/dingxi-training/data/pdfs/ ``>由于我们开启了 autoindex,文件上传到目录后,无需重启Nginx,刷新浏览器页面即可立即看到新文件。
2. 自定义首页(可选)
如果希望访问根目录时有一个引导页面,可以在 /data/dingxi-training/html 目录下创建一个 index.html 文件。记得修改 docker-compose.yml,增加 - ./html:/usr/share/nginx/html:ro 的挂载,并重启容器。
简单的HTML代码示例:
```html请点击下方链接访问资料:
```3. 日志查看与排错
如果遇到文件无法下载或403错误,首先检查文件权限。确保Nginx进程(通常是容器内的nobody用户)有读取权限。可以使用 chmod -R 755 /data/dingxi-training/data 修复权限。
查看实时访问日志:
```bash tail -f /data/dingxi-training/logs/access.log ```通过以上步骤,一个基于Docker、具备身份验证、支持中文文件名浏览的定西档案培训平台就已经完全落地。整个过程无需编译安装复杂的软件,零门槛即可实现档案资料的集中管理与分发。