用戶環境
系統: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 ~]#