思路:阿里云购买服务器选择centos7宝塔系统做宿主机,登录宝塔安装Docker管理器,获取一个centos7镜像,创建容器在里面再安装个宝塔后部署PHP、Python等。
点击购买阿里云云服务器,建议买香港可以免备案,系统镜像选择CentOS7或者用自己现有服务器
备注:去掉宝塔绑定账号,ssh登录服务器输入
rm -f /www/server/panel/data/bind.pl
一、登录宝塔->软件商店安装Docker管理器
![](https://img-blog.csdnimg.cn/img_convert/10454c6af7ccd61672404d8aae5eccb1.png)
二、打开Docker管理器,输入centos:7获取镜像
![](https://img-blog.csdnimg.cn/img_convert/27607eb266edc70c360782d3cda70558.png)
三、创建容器,按图输入(这块端口写的8881是为了和宿主机8888区分,还可以把宿主机端口改成8880,容器端口写8888,就不用第5步配置了)
容器端口 | 映射到(服务器) | 说明 |
22 | 222 | SSH服务 |
8881 | 8881 | 面板服务 |
80 | 81 | HTTP服务 |
443 | 4433 | HTTPS |
3306 | 33060 | Mysql |
20 | 200 | |
21 | 211 |
![](https://img-blog.csdnimg.cn/img_convert/274355c8b2b6395e2e4f5c0566f1cb94.png)
四、修改容器名字为cen_bt 点击终端,进入容器
![](https://img-blog.csdnimg.cn/img_convert/2cb25eec4fc45213d0cb0d3b4c32099a.png)
五、在容器里安装宝塔面板7.1,中间需要按y确认
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
![](https://img-blog.csdnimg.cn/img_convert/ed27d1320926d9f22ac55dad8966e62e.png)
安装完成把信息保存起来(第三步容器端口写8888可省略下面步骤)
第三步容器端口写8881需要修改宝塔面板端口为8881
echo '8881' > /www/server/panel/data/port.pl && /etc/init.d/bt restart
但是这样重启会丢失配置文件,解决方法一:
在宿主机单次启动
docker start cen_bt && docker exec cen_bt /bin/sh -c "echo '8881' > /www/server/panel/data/port.pl && /etc/init.d/bt restart"
最终解决方案:设置宿主机开机启动
cd /etc/profile.d/
vi hosts.sh
输入以下命令,保存退出
docker start cen_bt && docker exec cen_bt /bin/sh -c "echo '8881' > /www/server/panel/data/port.pl && /etc/init.d/bt restart"
或第二个方法:改完端口后生成新的镜像
六、输入ip:8881登录面板,就可以自由配置环境了
注意,要在阿里云服务器安全组配置规则里打开上面端口
![](https://img-blog.csdnimg.cn/img_convert/97082bafe4fd9d7762a5b7e4c44b619e.png)
![](https://img-blog.csdnimg.cn/img_convert/3844bea15179a2f1fefdf4a78c1d3290.png)
七、部署网站
在docker容器中的宝塔面板 新建站点。需同时到宿主机的宝塔中新建相同网站,并建立反向代理。
网站源码只放入docker容器中的宝塔面板中即可
在宿主机的宝塔 ,新建站点后点击设置,需将宿主机的81端口指向docker容器中的80端口
![](https://img-blog.csdnimg.cn/img_convert/639bbf48b9edca9ed2b8bdf1ce0e33a1.png)
访问网址即可成功
![](https://img-blog.csdnimg.cn/img_convert/672b8e5e1f1c543eeaaee74bea32a2c6.png)
八、实际要用的话改完容器里所有配置后生成一份新的镜像
常见问题:
问:通过docker部署宝塔面板镜像后,如何访问面板?
答:如果你创建docker时,将8888映射到了8881,那么通过(http://服务器IP:8881)访问!
访问docker创建的面板,需要在新的浏览器打开,否则会自动退出。
问:通过docker部署宝塔面板镜像后,如何通过SSH管理容器?
答:如果你创建docker时,将22映射到了222,那么直接使用ssh工具,通过222端口连接容器
问:我创建容器时明明将8888端口映射到了8881端口,为什么无法访问?
答:请检查面板防火墙是否放行8881,如果有安全组,还需要在安全组放行8881