Docker安装宝塔环境
利用Docker运行Centos容器,在Centos容器内安装宝塔
1.容器启动与宝塔安装
1.1 容器的启动
# 拉取 Centos纯净镜像
docker pull centos
# 创建并启动容器
docker run -it -d \
--name=centos \
-p 8888:8888 \
centos
# 注:映射端口8888,为了安装完成宝塔后,能进入宝塔进行配置
1.2 容器内安装宝塔
启动容器后,接下来就进入容器内,在容器内安装宝塔
# 进入容器
docker exec -it centos /bin/bash
# 创建并切换到临时安装目录
mkdir /root/bt&&cd /root/bt
# 执行官方安装脚本,等待安装完成
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
2. 宝塔配置
2.1 组件安装
待安装完成后,打开浏览器访问 ip:8888/安全登录地址 ,利用安装完成界面给定的用户名密码进行登录,
提示安装环境时,推荐默认个lnmp,然后对面板进行配置,更改登录安全地址,更改用户名密码,安装需要的插件(为了导出镜像大小,可以不用安装,后期部署后在装)
待宝塔面板组件安装完毕后,需要进入/www/panel
内,将缓存文件删除,不然导出镜像会很大
2.2 启动脚本
需要启动脚本来启动容器内宝塔面板,将shell脚本保存在任意位置,并设置可执行权限,在启动容器时需要,这里以保存为/www/Start.sh
为例:
#!/bin/sh
echo "Starting..."
# 启动宝塔面板
echo "Starting BT"
/etc/init.d/bt start
# 启动Nginx
echo "Starting nginx"
/etc/init.d/nginx start
# 启动Apache 如果用的lamp
#echo "Starting Apache"
#/etc/init.d/httpd start
# 启动MySQL
echo "Starting mysqld"
/etc/init.d/mysqld start
# 启动ftp
echo "Starting pure-ftpd"
/etc/init.d/pure-ftpd start
# 启动 php-fpm 根据自己所安装的版本,可以添加多个版本一同启动
echo "Starting php-fpm-56"
/etc/init.d/php-fpm-56 start
echo "Starting php-fpm-72"
/etc/init.d/php-fpm-72 start
# 阻止容器结束运行
while(true)
do
sleep 60
done
3. 容器导出
待宝塔面板配置完成后,即可对容器保存为镜像并导出
# 执行 `docker commit <container_id> <images_name>` 命令保存镜像
docker commit centos mybt:1.0
# 执行 `docker save` 对镜像进行导出
docker save -o mybt.tar mybt:1.0
4. 宝塔容器的部署
4.1 镜像导入
第三步中,将导出镜像分发到所需服务器,然后导入镜像
# 执行 `docker load` 导入镜像
docker load -i mybt.tar
# 检查镜像是否导入
docker images
4.2 容器配置启动
在上一步镜像入后,即可配置并启动容器
docker run \
-it -d \
--name=mybt \
-p 8888:8888 \
-p 80:80 \
-p 888:888 \
-p 443:443 \
-p 21:21 \
-v ~/mybt/wwwroot:/www/wwwroot \
-v ~/mybt/backup:/www/backup \
mybt:1.0 /www/Start.sh
# 注意: 映射端口时,如果需要在外部使用工具管理MySQL时,添加3306端口的映射,以及其他所需端口,另外目录绑定也同理
容器启动之后,就可以访问 ip:8888/设置的登录地址
利用已设置的用户名密码登录宝塔面板
说明: 这里实际还是存在不足的地方,这样安装,run容器时得加上
-it
参数,不然会直接结束,并且容器不能检查宝塔的运行情况,可能实现宝塔面板已经停止了,但是容器还在正常运行中(虽然可以靠更改启动脚本作为守护进程),并且不能告诉容器需要映射那些端口,因此不能使用--net=host
来映射所有容器内服务端口,如果用于生产环境,还是推荐使用Dockerfile
进行镜像构建,那样就不用启动容器内脚本方式来启动了
我是个Linux小白,现在想实现宝塔的离线安装,按照您的教程做到第二步卡壳了,请求支援,有偿,烦请加QQ573337636
0V0。刚刚折腾完docker在你这看到了。。。
喵喵也开始折腾docker嗷
是嘛是嘛~~~