LinuxServer.io 的 Docker-Swag 教程
1. 项目的目录结构及介绍
Docker-Swag 是一个用于自动获取和续签 Let's Encrypt SSL 证书的工具,同时也能够作为反向代理来管理你的服务。其默认的目录结构大致如下:
/config/
├── nginx/
│ ├── conf.d/ # 存放 Nginx 配置片段
│ └── proxy-confs/ # 存放自定义的反向代理配置
└── swag.yml # Swag 容器的主要配置文件
在这个结构中:
/config/nginx/conf.d/
: 包含了 Nginx 的全局配置或者特定服务的配置文件片段。/config/nginx/proxy-confs/
: 提供了一个地方来存储自定义的反向代理配置,这些配置将被 Nginx 用来转发流量到你的应用服务器。/config/swag.yml
: 这是容器启动时使用的主配置文件,包含了 Swag 容器的环境变量和绑定卷等信息。
2. 项目的启动文件介绍
Swag 容器可以使用 Docker CLI 或者 Docker Compose 来启动。以下是两种方式的示例:
Docker CLI 启动
docker create \
--name=swag \
--cap-add=NET_ADMIN \
--net=lsio \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e URL=linuxserver-test.com \
-e SUBDOMAINS=wildcard \
-e VALIDATION=dns \
-e DNSPLUGIN=cloudflare \
-p 443:443 \
-p 80:80 \
-v /home/aptalca/appdata/swag:/config \
--restart unless-stopped \
lscr.io/linuxserver/swag
docker start swag
Docker Compose 启动
version: "2.1"
services:
swag:
image: lscr.io/linuxserver/swag
container_name: swag
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- URL=linuxserver-test.com
- SUBDOMAINS=www,ombi
- VALIDATION=http
volumes:
- /home/aptalca/appdata/swag:/config
ports:
- 443:443
- 80:80
restart: unless-stopped
docker-compose up -d
启动脚本中涉及的参数包括网络设置、环境变量(如证书验证方式、DNS 插件、时间区)、端口映射以及数据卷挂载,它们共同决定了 Swag 容器的行为。
3. 项目的配置文件介绍
主要配置文件 swag.yml
Swag 的配置主要通过 swag.yml
文件中的环境变量实现,例如:
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- URL=linuxserver-test.com
- SUBDOMAINS=www,ombi
- VALIDATION=http
- DNSPLUGIN=cloudflare
PUID
和PGID
分别指定运行容器内部进程的用户和组 ID。TZ
设定时区。URL
指定要获取证书的域名。SUBDOMAINS
列出要添加到证书的子域名,可以用逗号分隔。VALIDATION
决定了证书的验证方法,如 HTTP 或 DNS。DNSPLUGIN
用于 DNS 验证的插件名称,比如 Cloudflare。
Nginx 反向代理配置
除了 swag.yml
外,Nginx 的配置位于 /config/nginx/proxy-confs
目录下。你可以在这里创建自定义的 .conf
文件,每个文件对应一个反向代理规则,例如:
server {
listen 443 ssl http2;
server_name subdomain.linuxserver-test.com;
ssl_certificate /etc/nginx/certs/subdomain.linuxserver-test.com.crt;
ssl_certificate_key /etc/nginx/certs/subdomain.linuxserver-test.com.key;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Origin' '*';
}
}
这个配置将会把所有到 subdomain.linuxserver-test.com
的请求转发给本地的 8080 端口。
在更新或调整配置后,记得重启 Swag 容器以应用新的设置。
希望这篇教程对您理解并使用 Docker-Swag 起到了帮助作用。如果您在使用过程中遇到任何问题,建议查阅 LinuxServer.io 的官方文档或社区资源进行解答。