说明
从目前的行业发展中,博主多年前开始一直从事容器方面的运维工作,为了更好的技术发展,后续将全面拥抱容器化技术。同时,由于维护OneinStack变得困难,并且各种环境适配也耗费了大量时间(相比容器更适合于跨平台、轻量级、高度可移植性和隔离性等方面)。因此,已于23年8月份出售了OneinStack(具体细节不方便透露),后续将更多精力和资源投入到一个新项目中,bypanel是一个基于容器构建安装环境,支持amd64、arm64平台。
支持操作系统
- CentOS
- RedHat
- Alpine Linux
- Debian
- Ubuntu
- AlmaLinux
- Rocky Linux
- Fedora
- Amazon Linux
- Alibaba Linux
- Oracle Linux
- Arch Linux
- openSUSE
- Anolis
- OpenCloudOS
- TencentOS
- EulerOS
- openEuler
- Kylin
- LinuxMint
- Elementary
- Deepin
- Kali Linux
- KylinsecOS
- Uos
镜像说明
镜像地址:https://hub.docker.com/repositories/bypanel
使用github Action全自动化:
- nginx:https://github.com/linuxeye/docker-nginx
- openresty: https://github.com/linuxeye/docker-openresty
- php-fpm:https://github.com/linuxeye/docker-php-fpm
- mysql:https://github.com/linuxeye/docker-mysql
安装
克隆代码
git clone https://github.com/linuxeye/bypanel.git cd bypanel cp env-example .env
修改环境变量
vi .env
包含非常多参数,如
- NEW_UID: 容器运行用户Id,网站根目录权限需为此用户Id,可通过`chown -R 1000:1000 /data/webroot`修改网站根目录权限
- NEW_GID: 容器运行用户组Id
- TIMEZONE: 容器时区
- NGINX_SERVER: Nginx镜像版本
- MYSQL_SERVER: MySQL镜像版本
- PGSQL_SERVER: PostgreSQL镜像版本
- REDIS_SERVER: Redis镜像版本
- MEMCACHED_SERVER: Memcached镜像版本
- MONGO_SERVER: MongoDB镜像版本
- PMA_SERVER: phpMyAdmin镜像版本
- PMA_ARBITRARY: phpMyAdmin参数,当设置为 1 时,将允许与任意服务器的连接
- PMA_ABSOLUTE_URI: phpMyAdmin参数,phpMyAdmin的完整 URL。 有时在反向代理配置中使用时需要。
- SFTPGO_SERVER: SFTPGo镜像版本
- SFTPGO_FTPD_WEB_ADMIN_PORT: SFTPGo web管理端口,创建第一个管理员和一个新的 SFTPGo 用户,注意安全组端口
- SFTPGO_FTPD_PORT: FTP服务端口,注意安全组端口
- SFTPGO_FTPD_PASSIVE_PORT_RANGE_START: FTP服务被动开始的端口,注意安全组端口
- SFTPGO_FTPD_PASSIVE_PORT_RANGE_END: FTP服务被动结束的端口,注意安全组端口
- PHP_MODULES_ENABLE: PHP启用模块
- PHP_MODULES_DISABLE: PHP禁用模块
- HOST_PORT_NGINX: Nginx端口
- HOST_PORT_NGINX_SSL: Nginx SSL端口
- HOST_PORT_OPENRESTY: OpenResty端口
- HOST_PORT_OPENRESTY_SSL: OpenResty SSL端口
- HOST_PORT_APACHE: Apache端口
- HOST_PORT_APACHE_SSL: Apache SSL端口
- MYSQL_ROOT_PASSWORD: MySQL数据库root密码
- HOST_PORT_MYSQL: MySQL端口
- PGSQL_ROOT_USER: PostgreSQL根用户
- PGSQL_ROOT_PASSWORD: PostgreSQL根用户密码
- PGSQL_HOST_AUTH_METHOD: 为了不使用 PostgreSQL 的密码,请将此值保留为“trust”
- HOST_PORT_PGSQL: PostgreSQL端口
- HOST_PORT_REDIS: Redis端口
- REDIS_ARGS: Redis启动参数
- HOST_PORT_MEMCACHED: Memcached端口
- HOST_PORT_MONGO: MongoDB端口
安装bypanel
cd bypanel ./install.sh
修改配置文件
~/bypanel/cfg:对应版本对应配置,注意路径为容器内路径
启动容器环境
启动nginx-1.24.0, php-8.2, maraidb-10.11命令:
docker-compose --profile nginx --profile php82 --profile mysql up -d
或者
vi /etc/environment
COMPOSE_PROFILES=nginx,php82,mysql
docker-compose up -d # 通过/etc/environment不需要--profile
参数
启动nginx-1.24.0, php-8.2, maraidb-10.11,phpmyadmin,数据库备份命令:
docker-compose --profile nginx --profile php82 --profile mysql --profile phpmyadmin --profile mysql-cron-backup up -d
或者
vi /etc/environment
COMPOSE_PROFILES=nginx,php82,mysql,phpmyadmin,mysql-cron-backup
docker-compose up -d # 通过/etc/environment不需要--profile
参数
启动openresty, php-8.3, mysql-5.7,phpmyadmin,数据库备份命令:
修改mysql版本:编辑.env ,将 MYSQL_SERVER=mariadb-10.11 改成 MYSQL_SERVER=mysql-5.7
docker-compose --profile openresty --profile php83 --profile mysql --profile phpmyadmin --profile mysql-cron-backup up -d
或者
vi /etc/environment COMPOSE_PROFILES=openresty,php83,mysql,phpmyadmin,mysql-cron-backup docker-compose up -d # 通过/etc/environment不需要--profile xxx参数
停止运行容器
关闭nginx-1.24.0, php-8.2, maraidb-10.11命令:
docker-compose --profile nginx -profile php82 -profile mysql stop
停止删除容器
关闭nginx-1.24.0, php-8.2, maraidb-10.11命令:
docker-compose --profile nginx -profile php82 -profile mysql down
数据目录结构
默认数据目录结构如下:
[root@linuxeye ~]# tree -L 2 /data /data ├── backups │ ├── 202312090300.linuxeye.sql.gz │ ├── 202312100300.linuxeye.sql.gz │ ├── 202312110300.linuxeye.sql.gz │ └── latest.linuxeye.sql.gz -> 202312110300.linuxeye.sql.gz ├── logs │ ├── nginx │ └── php-fpm-8.2 ├── mariadb-10.11 │ ├── aria_log.00000001 │ ├── aria_log_control │ ├── ddl_recovery.log │ ├── ib_buffer_pool │ ├── ibdata1 │ ├── ib_logfile0 │ ├── ibtmp1 │ ├── linuxeye │ ├── multi-master.info │ ├── mysql │ ├── mysql-bin.000001 │ ├── mysql-bin.000002 │ ├── mysql-bin.index │ ├── mysql-slow.log │ ├── mysql_upgrade_info │ ├── performance_schema │ └── sys └── webroot ├── default └── linuxeye
1F
谢谢两位军哥多年的坚持,让我学会这么多
2F
没有用过docker,有其他教程吗?
比如怎么绑定域名,备份网站到云端这些。