在阿裡雲上的ECS伺服器配置
ECS 1核1G,1M帶寬
Ubantu 16
Docker
Tomcat 9
有公網IP,配置安全政策,沒有購買RDS,購買完成後,即設定了賬号、密碼,遠端連接配接工具用的是putty,檔案傳輸工具用的是FileZilla,官網用的是Bootstrap,VS code,并安裝了browser插件
以下是具體操作步驟,及遇到的問題和解決方式:(Ubantu和Centos大家注意區分,别搞混了)
1.首先打開終端視窗輸入指令,更新包資訊:
sudo apt-get update
2.安裝CA憑證,支援Https:
sudo apt-get install
sudo apt-get install apt-transport-httpssudo apt-get install ca-certificates
sudo apt-get install curl
sudo apt-get install software-properties-common
3.添加一個官方的GPG密鑰:
curl -fsSL
https://download.docker.com/linux/ubuntu/gpg| sudo apt-key add -
4.驗證密鑰指紋:
sudo apt-key fingerprint 0EBFCD88
輸出的是:9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 即正确。
5.下載下傳amd64的官方最新穩定版Docker:
sudo add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/ubuntu$(lsb_release -cs) stable"
出現如下提示,則正确:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwATO0MDN3QTOmV2YjNTZiNWZhRWZ0kzYmJ2YlN2NlZ2MmZmZ2UjMj9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
6再次更新包資訊:
7.安裝Docker CE版本:因為已修改鏡像位址為阿裡雲,是以可以直接使用下述方式,如果未修改,指令為 sudo apt-get install docker-ce
sudo apt-get install docker
8.建立一個docker組,防止每次都要用sudo指令執行docker指令:
sudo groupadd docker
9.将該使用者加入到組内:${USER} 不用修改,是直接取值的寫法
sudo gpasswd -a ${USER} docker
10.重新開機docker:
sudo service docker restart
執行到此步時,出現以下報錯:
執行以下語句:
apt install docker.io
會顯示安裝過程,并可明顯看到成功與否,基本都是成功的,然後重新執行 sudo service docker restart
11.切換目前會話到新的組:
newgrp - docker
-
安裝Tomcat容器
2.1 查找 tomcat 資訊
docker search tomcat
2.2 下載下傳下來官方的鏡像Starts最高的那個
docker pull docker.io/tomcat
2.3 檢視docker所有的鏡像
docker images
2.4啟動tomcat
docker run -p 8080:8080 docker.io/tomcat
此處的兩個8080分别說明下:
-p 後面的是伺服器端口,docker前面的是容器内端口,此處的寫法是進行對應,也可不一樣
成功啟動後,發現無法正常通路,此時進行如下操作:
檢視目前的鏡像: docker images
猜測因為啟動了網絡,那麼是否有可能是防火牆的原因,輸入 sudo ufw allow 8080,加入例外
再次打開浏覽器通路發現仍不能正常通路
網上找了一下,說是有可能是安裝docker的時候,源檔案有問題,因為之前配置過docker鏡像從阿裡雲鏡像擷取,故重新替換目前檔案
1 更改apt源,更改前先對sources.list檔案進行備分
指令行:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
修改sources.list檔案
deb
http://mirrors.aliyun.com/ubuntu/trusty main restricted universe multiverse
trusty-security main restricted universe multiverse
trusty-updates main restricted universe multiverse
trusty-proposed main restricted universe multiverse
trusty-backports main restricted universe multiverse
deb-src
先把sources.list清空,然後把上述的10條複制進去,退出編輯後,儲存、退出
點選ESC,然後快捷鍵:SHIFT+冒号,退出編輯,輸入wq,儲存、退出
2、更新apt源
指令行:sudo apt-get update
3、安裝Docker
指令行:sudo apt-get install docker.io
安裝完成後,需要重新開機下系統。
sudo reboot
4、啟動docker
sudo service docker restart,如果未開啟的情況下,restart 改為 start
5、啟動Tomcat
啟動後,使用ECS外圍IP,:8080,可以正常通路
接下來,還需要做的是,把使用Bootstrap做的官網靜态頁面,放到Tomcat中,因為沒後端代碼,是以不叫做釋出
此處比較搞笑的一點是:想嘗試着做個鏡像,結果把Windows下Tomcat通過FileZilla傳輸到 Ubantu下,然後發現始終啟動不起了,馬失前蹄啊,其實問題的關鍵是局部替換,即把原始版本中Tomcat/webapps下的幾個檔案夾全部删除,改用我要替換的内容,此處還有一點要謹記的是,如果隻是把如下的檔案放置到webapps下,是不能直接通路到的
其實大家可以類比下自己的項目,Tomcat本身的加載機制已經很完善和嚴謹,是以我沒必要怨怼,按規則做就好
我用website包了一層,放到webapps下
然後通過 FileZilla 直接傳輸到Ubantu的Tomcat/webapps下,重新檢視目前的容器是否有在啟動
指令行:docker ps -a,
如果隻是 docker ps,隻會顯示目前運作中的容器, 加上 -a 把全部容器的狀态顯示出來,我們隻需檢視非exited 的就好,如果覺得不想看那麼多,可以做下清理:
指令行:
删除所有未運作的容器(已經運作的删除不了,未運作的就一起被删除了)
sudo docker rm $(sudo docker ps -a -q)
做鏡像的話,阿裡雲上的容器鏡像服務,有比較專業的說明,還算比較容易操作
完成以上操作,我們打開浏覽器通路:
然後很高興的關閉了putty ,結果幾分鐘後重新整理,發現又通路不了了,檢視目前運作中的容器,發現是空的,之前啟動的也已退出
分析了原因,原來是容器重新開機後,Tomcat服務就不在了,這樣的話,不利于我們做官網部署,是以采用挂載的方式啟動
在 opt下建立單獨的目錄,用以單獨存放官網的靜态頁面,即上述所說的website,并放在 xxxx.net.cn,與tomcat/webapps對應起來,指令行如下:
docker run -d -v /opt/software/xxxx.net.cn:/usr/local/tomcat/webapps -p 8080:8080 docker.io/tomcat
-d 采用背景方式,挂載啟動,因為我安裝Tomcat時,用的就是 docker.io/docker 方式
執行以上操作後,則可放心了,再者Ubantu本身也比較穩定,可以幾個月不用重新開機服務了
在單獨做Tomcat鏡像的時候,用到的兩段指令行分享一下:
dockerFile
FROM ubuntu:16.04
MAINTAINER cc-man
上傳
ADD tomcat-website /opt/tomcat
COPY /run.sh /root/run.sh
RUN chmod 777 /root/run.sh
ENTRYPOINT ["/root/run.sh"]
run.sh
!/bin/bash
sh /opt/tomcat/tomcat-website/bin/catalina.sh run
此處的tomcat-website是經過加工的Tomcat,即從鏡像倉庫中pull後,在把需要用的東西放到webapps下,然後再生成新的鏡像
以上是此次處理時的分享,希望對大家有所幫助
另外通路時,還剩餘幾個問題:
1、http通路,需要加SSL證書,換成https安全通路
2、IP跟域名要進行映射
3、在網站釋出後,同步要進行備案操作,備案後要把備案資訊按要求放置在頁面底部
以上三個問題,會單獨寫文章分享,阿裡雲的備案還是可以的,之前用過幾次,這次用的也是阿裡雲的
購買域名、網站備案、商标注冊都不錯,以下是我的域名米店,歡迎光臨選購:
https://mi.aliyun.com/shop/38495目前已上架200多個域名