在docker容器中安裝寶塔面板


用戶環境

系統:Debian 10.2 64bit (騰訊雲2核4GB輕量應用服務器)

工具:Docker Engine - Community Version: 20.10.11

用戶:PENG (非root用戶,有sudo權限)

安裝過程

首先在用戶目錄下創建~/www的目錄

PENG@VM-24-9-debian:~$ mkdir www

拉取一個centos7的鏡像

PENG@VM-24-9-debian:~$ sudo docker pull centos:centos7

檢查一下是否拉取成功

PENG@VM-24-9-debian:~$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       centos7   eeb6ee3f44bd   5 months ago   204MB

因為寶塔需要開20、21、80、443、888、8888這幾個端口,我打算用10020、10021、80、10443、10888、18888做映射,可以提前檢查一下端口占用

PENG@VM-24-9-debian:~$ netstat grep

現在我們使用該鏡像創建一個名為PENG-baota的容器

PENG@VM-24-9-debian:~$ sudo docker run -i -t -d --name PENG-baota -p 10020:20 -p 10021:21 -p 80:80 -p 10443:443 -p 10888:888 -p 18888:8888 --privileged -v ~/www:/www centos:centos7 /sbin/init
4b9642722106a0b9aee7d198d8b1f86c81d4bd44c4d7ba85272e76f2f1086d9f

# -i 交互式操作
# -t 終端
# -d 后台運行容器,並返回容器ID
# --name 指定docker容器名稱
# -p 端口轉發
# --privileged 給予容器內部的寫權限
# -v ~/www:/www 將主機~/www目錄掛載到容器的/www
# /sbin/init 容器內部服務自啟

已經能看到創建的容器PENG-baota

PENG@VM-24-9-debian:~$ sudo docker ps -a
CONTAINER ID   IMAGE            COMMAND        CREATED          STATUS          PORTS                    NAMES
4b9642722106   centos:centos7   "/sbin/init"   40 seconds ago   Up 40 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:10020->20/tcp, :::10020->20/tcp, 0.0.0.0:10021->21/tcp, :::10021->21/tcp, 0.0.0.0:10443->443/tcp, :::10443->443/tcp, 0.0.0.0:10888->888/tcp, :::10888->888/tcp, 0.0.0.0:18888->8888/tcp, :::18888->8888/tcp   PENG-baota

然后進入容器內部

PENG@VM-24-9-debian:~$ sudo docker exec -it PENG-baota /bin/bash
[root@4b9642722106 /]#

在容器內安裝寶塔

[root@4b9642722106 /]# yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
...
==================================================================
Congratulations! Installed successfully!
==================================================================
外網面板地址: http://[宿主機公網IP]:8888/2f****6f
內網面板地址: http://:8888/2f****6f
username: p******w
password: 7******2
If you cannot access the panel,
release the following panel port [8888] in the security group
若無法訪問面板,請檢查防火牆/安全組是否有放行面板[8888]端口
==================================================================
Time consumed: 1 Minute!

安裝成功,然后記得在騰訊雲上開端口18888

使用http://[宿主機公網IP]:18888/2f****6f連接,連接成功

在容器內為root用戶設置密碼

[root@4b9642722106 /]# passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

使用寶塔時發現,寶塔面板上終端功能無法連接,初步懷疑容器未安裝ssh

考慮到后續可以用ssh直接登錄容器,我們需要為容器添加22端口的映射

我們先將容器打包成鏡像

PENG@VM-24-9-debian:~$ sudo docker commit -p -a "PENG" -m "pure version of baota with centos7" 4b9 peng-baota:v1

可以看到剛打包的鏡像

PENG@VM-24-9-debian:~$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
peng-baota   v1        33ed5c531154   19 seconds ago   696MB
centos       centos7   eeb6ee3f44bd   5 months ago     204MB

停止舊容器並刪除

PENG@VM-24-9-debian:~$ sudo docker stop 4b9
4b9
PENG@VM-24-9-debian:~$ sudo docker rm 4b9
4b9

創建新容器並多映射一個端口22

PENG@VM-24-9-debian:~$ sudo docker run -i -t -d --name PENG-baota-new -p 10020:20 -p 10021:21 -p 10022:22 -p 80:80 -p 10443:443 -p 10888:888 -p 18888:8888 --privileged -v ~/www:/www peng-baota:v1 /sbin/init
af4a67db86357cf2effb40b5ef30cc2e3d7b181d200973fd0e7caff84741e072

進入新容器內部,安裝ssh

PENG@VM-24-9-debian:~$ sudo docker exec -it PENG-baota-new /bin/bash
[root@af4a67db8635 /]# yum install openssh-server

啟動ssh服務,並設置開機自啟

[root@af4a67db8635 /]# systemctl start sshd.service
[root@af4a67db8635 /]# systemctl enable sshd.service

最后在騰訊雲上打開端口10022,然后就可以通過這個端口直接連接到容器了

ssh登錄成功,同理寶塔面板上的終端也可以使用了

PENG@VM-24-9-debian:~$ ssh root@[宿主機公網IP] -p 10022
root@[宿主機公網IP]'s password:
[root@af4a67db8635 ~]# 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM