|
| 1 | +# Docker 部署指南 |
| 2 | + |
| 3 | +简体中文 | [English](/languages/en/DOCKER.md) | [Français](/languages/fr/DOCKER.md) | [Русский](/languages/ru/DOCKER.md) | [فارسی](/languages/fa/DOCKER.md) | [한국어](/languages/ko/DOCKER.md) |
| 4 | + |
| 5 | +本文档介绍如何使用 Docker 部署 Xray 一键脚本。 |
| 6 | + |
| 7 | +## 前提条件 |
| 8 | + |
| 9 | +* 已安装 Docker 和 Docker Compose |
| 10 | +* 服务器具备公网 IP |
| 11 | +* 安装 Reality 协议:需准备符合 Xray 要求的目标域名 |
| 12 | +* 安装 TLS 版本:需准备域名并添加 A 记录 |
| 13 | + |
| 14 | +## 快速启动 |
| 15 | + |
| 16 | +### 1. 克隆仓库 |
| 17 | + |
| 18 | +```bash |
| 19 | +git clone https://github.com/hello-yunshu/Xray_bash_onekey.git |
| 20 | +cd Xray_bash_onekey |
| 21 | +``` |
| 22 | + |
| 23 | +### 2. 构建并启动容器 |
| 24 | + |
| 25 | +```bash |
| 26 | +docker compose up -d |
| 27 | +``` |
| 28 | + |
| 29 | +### 3. 进入交互式安装菜单 |
| 30 | + |
| 31 | +```bash |
| 32 | +docker attach xray-onekey |
| 33 | +``` |
| 34 | + |
| 35 | +首次运行时,容器会自动启动安装脚本,按照提示完成配置即可。 |
| 36 | + |
| 37 | +## 运行模式 |
| 38 | + |
| 39 | +容器支持以下运行模式: |
| 40 | + |
| 41 | +| 模式 | 说明 | 命令 | |
| 42 | +|------|------|------| |
| 43 | +| `idleleo`(默认) | 启动服务并进入交互式管理菜单 | `docker compose up -d` | |
| 44 | +| `start` | 仅启动服务(守护模式) | 修改 `docker-compose.yml` 中的 `command: start` | |
| 45 | +| `shell` | 启动服务并进入 Shell | `docker exec -it xray-onekey bash` | |
| 46 | + |
| 47 | +## 管理操作 |
| 48 | + |
| 49 | +### 进入管理菜单 |
| 50 | + |
| 51 | +```bash |
| 52 | +docker exec -it xray-onekey idleleo |
| 53 | +``` |
| 54 | + |
| 55 | +### 查看服务状态 |
| 56 | + |
| 57 | +```bash |
| 58 | +docker exec -it xray-onekey systemctl status xray |
| 59 | +docker exec -it xray-onekey systemctl status nginx |
| 60 | +``` |
| 61 | + |
| 62 | +### 重启服务 |
| 63 | + |
| 64 | +```bash |
| 65 | +docker exec -it xray-onekey systemctl restart xray |
| 66 | +docker exec -it xray-onekey systemctl restart nginx |
| 67 | +``` |
| 68 | + |
| 69 | +### 查看客户端配置 |
| 70 | + |
| 71 | +```bash |
| 72 | +docker exec -it xray-onekey cat /etc/idleleo/info/xray_info.inf |
| 73 | +``` |
| 74 | + |
| 75 | +### 查看日志 |
| 76 | + |
| 77 | +```bash |
| 78 | +docker exec -it xray-onekey cat /var/log/xray/access.log |
| 79 | +docker exec -it xray-onekey cat /var/log/xray/error.log |
| 80 | +``` |
| 81 | + |
| 82 | +## 使用 docker run(替代 docker compose) |
| 83 | + |
| 84 | +```bash |
| 85 | +docker build -t xray-onekey . |
| 86 | + |
| 87 | +docker run -d --name xray-onekey \ |
| 88 | + --network host \ |
| 89 | + --cap-add NET_ADMIN \ |
| 90 | + -e TZ=Asia/Shanghai \ |
| 91 | + -v xray-conf:/etc/idleleo/conf \ |
| 92 | + -v xray-cert:/etc/idleleo/cert \ |
| 93 | + -v xray-info:/etc/idleleo/info \ |
| 94 | + -v xray-logs:/var/log/xray \ |
| 95 | + -v acme-data:/root/.acme.sh \ |
| 96 | + -it xray-onekey |
| 97 | +``` |
| 98 | + |
| 99 | +## 数据持久化 |
| 100 | + |
| 101 | +容器使用 Docker Volume 保存数据,重建容器后配置不会丢失: |
| 102 | + |
| 103 | +| Volume | 容器路径 | 说明 | |
| 104 | +|--------|---------|------| |
| 105 | +| `xray-conf` | `/etc/idleleo/conf` | Xray 和 Nginx 配置文件 | |
| 106 | +| `xray-cert` | `/etc/idleleo/cert` | SSL 证书文件 | |
| 107 | +| `xray-info` | `/etc/idleleo/info` | 连接信息和状态文件 | |
| 108 | +| `xray-logs` | `/var/log/xray` | Xray 日志文件 | |
| 109 | +| `acme-data` | `/root/.acme.sh` | acme.sh 证书签发数据 | |
| 110 | + |
| 111 | +## 自定义证书 |
| 112 | + |
| 113 | +将 `xray.crt` 和 `xray.key` 文件放入证书 Volume 对应的宿主机路径。使用 `docker volume inspect xray-cert` 查看宿主机路径。 |
| 114 | + |
| 115 | +## 网络配置 |
| 116 | + |
| 117 | +容器默认使用 `network_mode: host`,即直接使用宿主机网络。这对 Xray 代理服务至关重要: |
| 118 | + |
| 119 | +* Reality 模式需要看到真实客户端 IP |
| 120 | +* TLS 模式需要直接绑定 443/80 端口 |
| 121 | +* 避免额外的 NAT 转发性能损耗 |
| 122 | + |
| 123 | +## 注意事项 |
| 124 | + |
| 125 | +* 容器内使用 `fake-systemctl` 替代 systemd,`systemctl` 命令可正常使用 |
| 126 | +* 防火墙建议在宿主机层面管理,而非容器内 |
| 127 | +* 容器内置看门狗(watchdog),每 30 秒检查服务状态,异常时自动重启 |
| 128 | +* 证书自动续签在容器内可正常工作(需确保 80 端口可访问) |
| 129 | +* 如需使用 fail2ban,可通过管理菜单安装 |
| 130 | + |
| 131 | +## 故障排查 |
| 132 | + |
| 133 | +### 容器无法启动 |
| 134 | + |
| 135 | +```bash |
| 136 | +docker logs xray-onekey |
| 137 | +``` |
| 138 | + |
| 139 | +### 服务未运行 |
| 140 | + |
| 141 | +```bash |
| 142 | +docker exec -it xray-onekey systemctl status xray |
| 143 | +docker exec -it xray-onekey systemctl start xray |
| 144 | +``` |
| 145 | + |
| 146 | +### 重新进入安装菜单 |
| 147 | + |
| 148 | +```bash |
| 149 | +docker exec -it xray-onekey idleleo |
| 150 | +``` |
| 151 | + |
| 152 | +### 完全重置 |
| 153 | + |
| 154 | +```bash |
| 155 | +docker compose down |
| 156 | +docker volume rm xray-conf xray-cert xray-info xray-logs acme-data |
| 157 | +docker compose up -d |
| 158 | +``` |
0 commit comments