思路:阿里雲購買服務器選擇centos7寶塔系統做宿主機,登錄寶塔安裝Docker管理器,獲取一個centos7鏡像,創建容器在里面再安裝個寶塔后部署PHP、Python等。
點擊購買阿里雲雲服務器,建議買香港可以免備案,系統鏡像選擇CentOS7或者用自己現有服務器
備注:去掉寶塔綁定賬號,ssh登錄服務器輸入
rm -f /www/server/panel/data/bind.pl
一、登錄寶塔->軟件商店安裝Docker管理器
二、打開Docker管理器,輸入centos:7獲取鏡像
三、創建容器,按圖輸入(這塊端口寫的8881是為了和宿主機8888區分,還可以把宿主機端口改成8880,容器端口寫8888,就不用第5步配置了)
容器端口 |
映射到(服務器) |
說明 |
22 |
222 |
SSH服務 |
8881 |
8881 |
面板服務 |
80 |
81 |
HTTP服務 |
443 |
4433 |
HTTPS |
3306 |
33060 |
Mysql |
20 |
200 |
|
21 |
211 |
四、修改容器名字為cen_bt 點擊終端,進入容器
五、在容器里安裝寶塔面板7.1,中間需要按y確認
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安裝完成把信息保存起來(第三步容器端口寫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登錄面板,就可以自由配置環境了
注意,要在阿里雲服務器安全組配置規則里打開上面端口
七、部署網站
在docker容器中的寶塔面板 新建站點。需同時到宿主機的寶塔中新建相同網站,並建立反向代理。
網站源碼只放入docker容器中的寶塔面板中即可
在宿主機的寶塔 ,新建站點后點擊設置,需將宿主機的81端口指向docker容器中的80端口
訪問網址即可成功
八、實際要用的話改完容器里所有配置后生成一份新的鏡像
常見問題:
問:通過docker部署寶塔面板鏡像后,如何訪問面板?
答:如果你創建docker時,將8888映射到了8881,那么通過(http://服務器IP:8881)訪問!
訪問docker創建的面板,需要在新的瀏覽器打開,否則會自動退出。
問:通過docker部署寶塔面板鏡像后,如何通過SSH管理容器?
答:如果你創建docker時,將22映射到了222,那么直接使用ssh工具,通過222端口連接容器
問:我創建容器時明明將8888端口映射到了8881端口,為什么無法訪問?
答:請檢查面板防火牆是否放行8881,如果有安全組,還需要在安全組放行8881