docker-compose一键部署LNMP环境

工具2阅读模式

docker-compose一键部署LNMP环境

说明

从目前的行业发展中,博主多年前开始一直从事容器方面的运维工作,为了更好的技术发展,后续将全面拥抱容器化技术。同时,由于维护OneinStack变得困难,并且各种环境适配也耗费了大量时间(相比容器更适合于跨平台、轻量级、高度可移植性和隔离性等方面)。因此,已于23年8月份出售了OneinStack(具体细节不方便透露),后续将更多精力和资源投入到一个新项目中,bypanel是一个基于容器构建安装环境,支持amd64、arm64平台。

支持操作系统

CentOS RedHat Alpine Linux Debian Ubuntu
AlmaLinux Fedora Rocky Linux openSUSE Anolis
OpencloudOS TencentOS Amazon Linux EulerOS openEuler
Kylin LinuxMint Alibaba Linux Elementary Uos
Deepin KylinsecOS Oracle Linux Kali Linux Arch Linux
...

镜像说明

镜像地址:https://hub.docker.com/repositories/bypanel

使用github Action全自动化:

安装

curl https://raw.githubusercontent.com/linuxeye/bypanel/main/quick_install.sh | bash
  • 默认安装路径: /opt/bypanel
  • bypctl安装路径: /usr/local/bin/bypctl

配置

bypctl config
  • 配置部署bypanel参数,即修改`/opt/bypanel/.env`

命令帮助

bypctl help

创建和启动

bypctl up -d
  • 创建和启动容器, 其中`-d`参数: 容器后台运行

生成web配置

bypctl mkcfg

重载web服务

bypctl reload

日志

bypctl logs -f
  • 显示日志, 如显示nginx实时日志:bypctl logs nginx -f, 其中`-f`参数: 打印日志输出

服务状态

bypctl status
  • 查看容器状态, 或执行命令 bypctl ps 作用相同

停止、删除容器和网络

bypctl down

重启服务

bypctl restart

启动服务

bypctl start

停止服务

bypctl stop

执行命令

bypctl exec SERVICE COMMAND [ARGS...]

如:登陆nginx容器

bypctl exec nginx sh

升级命令

bypctl upgrade

版本显示

bypctl version
环境变量

/opt/bypanel/.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端口

数据目录结构

默认数据目录结构如下:

[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

 
  • 本文由 yeho 发表于 2023-12-11
  • 转载请务必保留本文链接:https://linuxeye.com/481.html
    • OneinStack多年学生
      OneinStack多年学生

      谢谢两位军哥多年的坚持,让我学会这么多

      • test
        test

        没有用过docker,有其他教程吗?
        比如怎么绑定域名,备份网站到云端这些。

      匿名

      发表评论

      匿名网友
      确定

      拖动滑块以完成验证