使用 Mac 系统的程序员同学们,我想你们都有一样的困扰,那就是每次开发一些新东西的时候,就得编译安装一些软件一些包,久而久之导致 Mac 系统一堆垃圾冗余文件,还不知道怎么删除、卸载!docker 是一个很好的选择,环境在容器,用完不用了可以随时丢弃!若长时间用,也可以永久容器保留!好了今天的话题引出来了!
专门为开发服务端(主要 PHP 端吧)同学准备 docker-宝塔面板!一键创建完整开发环境!完美保护你 Mac 本机系统!
不用考虑直接上车吧!
gitee:https://gitee.com/ikmui/docker-bt
记得给个收藏!给个赞啊!
快速使用安装命令
git clone https://gitee.com/ikmui/docker-bt.git ./bt
cd bt
cp .env-example .env
compose up -d app && docker exec -it app /bin/bash
//访问http://127.0.0.1:8887
//输入你在配置文件里配置的用户名密码即可
//停止
docker-compose stop app
//删除
docker-compose down --volumes
后面是详细介绍 ~~~ 可以不看 ~~~
docker-宝塔
docker 下运行宝塔面板,实现本地完全隔离的开发环境!该脚本可以实现一键安装!
安装完成后,登录宝塔面板后台进行所需环境安装即可直接使用啦!
宝塔面板升级等一些列操作和 Linux 虚拟机上面安装一模一样。
- 镜像默认使用
Centos7
基础镜像,使用Dockerfile
构建 - 该脚本每次
build
都会保留之前信息,当然如果你删除了卷那没办法。。。配置文件里可以配置默认用户名和密码 - 安装时间视网络环境而定,建议更换
Docker
的国内源 - 配置文件
.env
中都有详细的注释 - 使用
volume
作持久化存储,数据卷名为bt_www
bt_usr
bt_etc
如何使用
建议使用 Liunx 或者 MAC 部署,windows 用户想来是用不到这个
1. 安装 Git,或者直接下载 zip
也可以
sudo yum install -y git
2. 到你想生成项目的文件夹下执行命令
git clone https://gitee.com/ikmui/docker-bt.git ./bt
3. 进入项目根目录
cd bt
4. 生成配置文件
cp .env-example .env
5. 启动宝塔镜像,在项目根目录下执行命令
docker-compose up -d app
或者 启动并进入 ssh(日常开发,往往需要 SSH 操作)
docker-compose up -d app && docker exec -it app /bin/bash
6. 查看默认登录信息
docker-compose logs app
也可以不用看,因为配置文件默认配置好了用户名和密码
如何进行数据备份和迁移
1. 首先正常部署成功后,将需要的应用程序和配置安装和设置完毕
2. 启动并进入 app_backup
容器,注意:接下来的操作都是在该容器下的交互命令下执行
docekr-compose stop
docekr-compose up -d app_backup
docekr-compose exec app_backup sh
3.1 备份
执行成功后会在宿主机项目目录下的
app_backup/export
目录下生成baota_backup_*.tar.gz
的数据包
sh /app_backup/export.sh
3.2 迁移
将数据包放在
app_backup/export
目录下,然后执行,根据提示操作即可
sh /app_backup/import.sh
其他说明
目录结构
- app
- app.sh 宝塔镜像启动脚本
- Dockerfile
- app_backup
- app_backup 宝塔数据备份迁移脚本
- Dockerfile
- export.sh 导出脚本
- import.sh 导入脚本
- backup .env 可配置,默认为宝塔备份目录
- wwwlogs .env 可配置,默认为宝塔日志目录
- wwwroot .env 可配置,默认为宝塔网站目录,请把你的网站放在此目录下
.env 配置说明
这里可以自定义端口和目录,请酌情设置,默认也可
没加入 cron 路径,因为测试发现用不了
另外没有实现运行到/usr/sbin/init 下面,所以计划任务不能自动执行
# 宝塔安装地址URL
BT_INSTALL_PATH=http://download.bt.cn/install/install_6.0.sh
# 面板账户
BT_USERNAME=baota
BT_PASSWORD=123456
# DNS
DNS1=8.8.8.8
DNS2=114.114.114.114
# Driver
VOLUMES_DRIVER=local
# bridge / host
NETWORKS_DRIVER=bridge
# Centos 版本
CENTOS_VERSION=7
# PORT 开放端口
# 面板端口
BT_PORT=8887
# 网站默认端口
WEB_PORT=80
# HTTPS 端口
HTTPS_PORT=443
# FTP 端口
FTP_PORT=21
# FTP 数据传输端口
FTP_DATA_PORT=20
# SSH 端口
SSH_PORT=22000
# MYSQL 端口
MYSQL_PORT=3306
# PhpMyAdmin 端口
PHPMYADMIN_PORT=888
# redis 端口
REDIS_PORT=6379
# memcached 端口
MEMCACHED_PORT=11211
#XDEBUG
XDEBUG_PORT = 9003
# PATH 路径
# 网站默认路径
WEB_PATH=./wwwroot
# 日志
LOGS_PATH=./wwwlogs
# 数据库相关存储路径
DATA_PATH=./data
# 宝塔备份
BACKUP_PATH=./backup
常用命令
# 构建容器
docker-compose build
# 不缓存构建,执行后默认登录信息会变化
docker-compose build --no-cache
# 查看运行情况
docker-compose ps
# 启动宝塔镜像
docker-compose up -d app
# 启动宝塔镜像并进入命令行
docker-compose up -d app && docker exec -it app /bin/bash
# 启动宝塔数据备份迁移系统
docker-compose up -d app_backup
# 启动所有
docker-compose up -d
# 停止运行
docker-compose stop app
# 删除容器和数据卷
docker-compose down --volumes
# 列出全部的数据卷
docker volume ls
# 删除指定的多个数据卷
docker volume rm volume_name volume_name
鸣谢
大家有好的修改建议或者问题,欢迎留言,我会及时回复问题和采纳建议!另外也期望能有高手能搞出完美的/usr/sbin/init 模式下运行方案
🐶 你走,我不送你。你来,风雨无阻,我去接你。