SelfhostedPro/Yacht项目Docker Compose部署指南:Mac与Linux环境详解
项目概述
SelfhostedPro/Yacht是一个基于Web的Docker管理界面,它为用户提供了可视化操作Docker容器的能力。通过Yacht,用户可以轻松管理容器、镜像、网络和卷,而无需记忆复杂的命令行指令。本文将详细介绍如何在Mac和Linux系统上使用Docker Compose部署Yacht服务。
环境准备
在开始部署前,请确保您的系统已满足以下条件:
- Docker已安装并正常运行
- Docker Compose已安装(通常随Docker一起安装)
- 系统具有足够的资源运行容器(至少1GB可用内存)
Docker Compose文件解析
以下是Yacht的Docker Compose配置文件详解:
version: '3'
services:
yacht:
container_name: yacht
restart: unless-stopped
ports:
- 8000:8000
volumes:
- yacht:/config
- /var/run/docker.sock:/var/run/docker.sock
- /Users/<username>/Development/Docker/compose:/compose
environment:
- PUID=0
- PGID=0
- COMPOSE_DIR=/compose
image: selfhostedpro/yacht
volumes:
yacht:
关键配置说明
-
容器名称:
container_name: yacht
指定了容器的名称为yacht,便于识别和管理。 -
重启策略:
restart: unless-stopped
确保容器在非手动停止的情况下会自动重启,提高服务可用性。 -
端口映射:
8000:8000
将容器内部的8000端口映射到主机的8000端口,用户可通过http://localhost:8000
访问Yacht界面。 -
卷挂载:
yacht:/config
:使用命名卷yacht来持久化Yacht的配置数据/var/run/docker.sock:/var/run/docker.sock
:挂载Docker守护进程的Unix套接字,使Yacht能够与Docker引擎通信/Users/<username>/Development/Docker/compose:/compose
:将主机上的Docker Compose文件目录映射到容器内部(Mac用户需替换<username>
为实际用户名)
-
环境变量:
PUID=0
和PGID=0
:指定容器以root用户身份运行(生产环境建议使用非root用户)COMPOSE_DIR=/compose
:指定容器内Docker Compose文件的目录路径
-
镜像来源:
image: selfhostedpro/yacht
指定了使用的Yacht官方镜像。
部署步骤
1. 创建必要的目录结构
对于Mac用户,需要先创建Compose文件目录:
mkdir -p /Users/$(whoami)/Development/Docker/compose
对于Linux用户,可以修改为适合的路径,例如:
mkdir -p /opt/docker/compose
2. 创建Docker Compose文件
将上述配置保存为docker-compose.yml
文件,Mac用户需要将路径中的<username>
替换为实际的用户名。
3. 启动Yacht服务
在包含docker-compose.yml
文件的目录中执行:
docker-compose up -d
4. 访问Web界面
服务启动后,打开浏览器访问:
http://localhost:8000
安全注意事项
-
权限控制:当前配置使用root用户运行容器(PUID=0,PGID=0),在生产环境中建议创建专用用户并调整权限。
-
Docker套接字:挂载
/var/run/docker.sock
意味着容器拥有与主机相同的Docker权限,应确保Yacht服务的安全性。 -
网络暴露:默认配置将服务暴露在8000端口,如需公网访问,应考虑配置HTTPS和身份验证。
常见问题解决
-
权限问题:如果遇到权限错误,尝试:
sudo chown -R $USER:$USER /Users/<username>/Development/Docker
-
端口冲突:如果8000端口被占用,可修改
ports
配置为其他端口,如8080:8000
。 -
数据持久化:所有配置数据存储在
yacht
卷中,删除容器不会丢失配置。
进阶配置
使用非root用户运行
修改环境变量:
environment:
- PUID=1000
- PGID=1000
并确保挂载的目录对新用户有适当权限。
添加HTTPS支持
可以通过反向代理(如Nginx或Traefik)为Yacht添加HTTPS支持,提高安全性。
总结
通过本文介绍的Docker Compose配置,用户可以轻松在Mac和Linux系统上部署SelfhostedPro/Yacht服务。Yacht提供了友好的Web界面,大大简化了Docker容器管理的复杂度,特别适合不熟悉命令行操作的用户使用。根据实际需求,用户可以灵活调整配置,如修改数据存储路径、使用非root用户运行等,以满足不同场景下的安全性和便利性需求。