服务器docker环境
2022-10-21 增加 xii db
命令,封装了mysql的备份还原,增删数据库的便捷操作
2022-10-19 增加对arm、arm64 架构的支持。
命令:xii db
包括了8个常规mysql操作,主要有:
xii db 并不是要代替mysql的所有操作,他主要是针对最常用的场景做了处理。【参考自lnmp.org的操作】,更多功能请用专业管理软件或命令操作。
详细文档请查看: https://xii.app
Docker 化的 lnmp 环境及更多软件包,同时提供助手程序 xii 用来快捷管理。
注: xii 是罗马数字 12 的意思,正好有域名 xii.app ,就很随意的用了。 这会征求名。
软件 | 具体版本 | 备注 |
---|---|---|
PHP | php7.3 , php7.4, php8.0, php8.1, php8.2 | |
Web服务器 | nginx | 内嵌acme.sh,用于ssl证书申请 |
数据库 | mysql5.7, mysql8.0 , mysql5.6 , mysql5.5 | |
Nosql | mongoldb , redis | |
缓存 | memcached | |
消息队列 | rabitmq | |
其他 | supervisor | |
工具 | phpmyadmin |
注 1: 可自行轻松扩展软件清单
注 2: php 支持快捷安装扩展,已默认安装 compose,php 扩展等请查看左边 php 节点说明。 nginx 的配置已做优化处理,默认自带 acme.sh,可免费申请 ssl 证书。phpmyadmin 实际运行体积大改 450Mb,不太建议启用。
注3: Mysql尽可能建议使用5.7或以上版本,能获得更多的性能。 使用前请查看左边mysql说明了解端口、导出导入数据等信息。
主要提供了易用性功能,具体如下:
当前仅在 linux 和 mac 测试完全。
注:暂没在 window 下充分测试完,项目的快捷操作严重依赖 xii 助手,所以如需要 window 下使用,建议使用 yeszao/dnmp 这个开源项目(本项目的配置项大量复用了它的代码段,并进行优化配置或提升版本等)。
复制并执行一下命令:
wget -c https://raw.githubusercontent.com/xiiapp/xii/main/script/install.sh && chmod +x install.sh && ./install.sh
注: 当前仅支持 mac 和 linux,暂不支持 win 系统一键安装。
确保系统安装好 docker 和 docker-compose,建议直接安装 docker 官方的 docker-desktop。
下载安装包,下载地址二选一
苹果M1/M2芯片用户请下载 arm64 版本 https://github.com/xiiapp/xii/raw/main/release/xii_mac_arm.zip
苹果Intel芯片用户请下载 https://github.com/xiiapp/xii/raw/main/release/xii_mac.zip
解压安装后后,手动执行 chmod +x manual.sh && ./manual.sh
完成安装。
注意检测 docker 是否启动,在 docker 启动的情况下,可以执行后续命令。
docker官方提供了傻瓜式安装脚本,为你做好所有工作,免去了手动安装的繁琐。
本文实测系统环境:debian11
执行以下命令
2023-03-07更新
不知道从什么时候开始官方脚本已经默认也安装了 docker compose,不需要后面的手动安装了
注意是 docker compose 而不是 docker-compose. 执行命令时候也没有这个杠
curl -fsSL https://get.docker.com | bash -s docker
下载安装包,下载地址二选一
Linux 版本 https://github.com/xiiapp/xii/raw/main/release/xii_linux.zip
Linux arm64 版本 https://github.com/xiiapp/xii/raw/main/release/xii_linux_arm64.zip
Linux arm 版本 https://github.com/xiiapp/xii/raw/main/release/xii_linux_arm.zip
解压安装后后,手动执行 chmod +x manual.sh && ./manual.sh
完成安装。
注意检测 docker 是否启动,在 docker 启动的情况下,可以执行后续命令。
wget -c https://raw.githubusercontent.com/xiiapp/xii/main/script/uninstall.sh && chmod +x uninstall.sh && ./uninstall.sh
备份好所需数据,网站数据放在www目录
,配置放在env/容器类型
, 容器产生的数据,比如msyql,一般在data/容器名
下
执行 xii down
停止所有容器
执行 xii rmall
删除所有容器、镜像、卷
Linux用户执行 rm -rf /home/xii
,Mac用户执行 rm -rf ~/xii
删除所有数据
执行 rm -f /usr/local/bin/xii
和 rm -f /usr/local/bin/xxi
删除软链接
无论什么时候,只要你想变更 docker 容器,都可以执行以下命令进行组件的变更。
xii init
演示动画
<script id="asciicast-ag7Woq3p2wc9hsFnbI4c1EzM9" src="https://asciinema.org/a/ag7Woq3p2wc9hsFnbI4c1EzM9.js" async></script>友情提示,一个可能更好的操作流程
第一次建议执行 xii up -d
然后再执行 xii ps
看下你的容器是否都起来了。如果没起来,可以再执行一次 xii up
或 xii up -容器名
来看一下报了什么错误
xii vhost add
注: 添加网站或者任意nginx反代的过程中,会提示很多选项,根据需要创建即可,此外过程中,会提示是否申请免费的SSL证书。
**注:**当前不会创建mysql数据库,拟后续版本推出。
演示:
<script id="asciicast-528842" src="https://asciinema.org/a/528842.js" async></script>**注:**国内某些云服务器间歇性屏蔽掉github的访问,有可能会导致用来生成证书的acme.sh无法安装上,xii vhost如果遇到这种情况,会尝试自己安装一次,还不行会将安装命令显示出来,并提示用户复制黏贴后自己执行几次安装。
xii vhost del
注:其本质是检查nginx的配置目录vhost里的配置文件,一个文件就是一个网站
演示:
<script id="asciicast-528843" src="https://asciinema.org/a/528843.js" async></script>xii vhost list
解析匹配关系,暂不提供。
请自行编辑 env/nginx/vhost/域名.conf
文件
**场景:**服务器已经在跑了一个 nginx 容器(也就是说这个容器被 docker-compose up
或者 xii up
过一次了), 此时修改docker-compose.yml
或者dockerfile
文件、.env 文件后,要如何让他生效?
关键理解:
docker-compose down --volumes
。可以有几种如下操作来确保生效,但推荐使用xii rebuild -镜像名
来快捷操作:
xii down
后 xii up
一次:
# 做法 1:使用原始命令,必须在 xii 的项目下执行
docker-compose down
docker-compose up -d
# 做法 2: 使用 xii 助手,可以在任何目录下执行
xii down
xii up -d
注意:docker-compose down
会删除容器、镜像、网络、映射的卷(我们通过 dockerfile 里 volume 命令挂载上去的不会删除)。
#做法 1:原始命令方式,必须在 docker-compose.yml 所在目录下执行
docker stop 容器名 #1.先停止容器
docker rm 容器名 #2.删除掉容器
systemctl restart docker #重启 docker 服务(测试过,新版似乎无需,需要进一步测试,可以暂时跳过观察一下)
docker-compose up -d --no-deps --build 容器名 #4.重新 docker up 一下
# 做法 2:使用 xii 助手
xii stop -容器名
xii rm -容器名 #重启 docker,同做法 1 第 3 步一样 #在 up 之前,也可以直接先 xii build 一次,多了一条操作命令,
xii up -d -容器名
# 做法 3: 使用 xii rebuild 一步到位。强烈推荐这个,最简单
xii rebuild -容器名
# --force-recreate 即使配置或者镜像(images)没有改变也强制重启
docker-compose up --force-recreate -d
# 参数挺长的,推荐使用 xii rebuild -容器名
sudo gpasswd -a ${USER} docker
执行完毕后,重新登陆一次 ssh 即可
安装的时候,复制专用国内的安装脚本。其实就是 install.sh 后面加一个参数 china 就会默认使用国内源。
MIT
mslxi 💻 |
xiiapp 💻 🤔 |