```jsversion: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt>
version: '3.8'
- 版本:指定了
docker-compose.yml
文件使用的版本号,这里是3.8
。这确保了配置文件的语法和功能与 Docker Compose 的特定版本兼容。
服务定义
services:
app:
- 服务:定义了一组可以一起运行的应用容器。在这里,服务的名称是
app
。
容器镜像
image: 'jc21/nginx-proxy-manager:latest'
- 镜像:指定容器使用的 Docker 镜像。这里使用的是
jc21
用户的nginx-proxy-manager
镜像,标签为latest
。
重启策略
restart: unless-stopped
- 重启:定义了容器的重启策略。
unless-stopped
表示容器将自动重启,除非它被手动停止或删除。
端口映射
ports:
- '80:80'
- '81:81'
- '443:443'
- 端口:将容器内部的端口映射到宿主机的端口。这里将容器的 80、81 和 443 端口映射到宿主机的相同端口。这意味着访问宿主机的这些端口将相当于访问容器的对应端口。
数据卷
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
- 数据卷:挂载宿主机的目录到容器内部,以实现数据持久化。
./data:/data
:将宿主机的./data
目录挂载到容器的/data
目录。这通常用于存储配置文件和数据库。./letsencrypt:/etc/letsencrypt
:将宿主机的./letsencrypt
目录挂载到容器的/etc/letsencrypt
目录。这通常用于存储 Let's Encrypt SSL 证书。
总结
这个配置文件定义了一个使用 Nginx Proxy Manager 的 Docker 服务,它将对外提供 HTTP (80)、HTTP (81) 和 HTTPS (443) 服务。通过挂载数据卷,确保了配置和证书数据的持久化。
Nginx Proxy Manager
Nginx Proxy Manager 是一个易于使用的 Web 界面,用于管理 Nginx 作为反向代理服务器。它可以自动配置 SSL/TLS 证书,并支持负载均衡、访问控制等功能。