天天看點

在阿裡雲ECS上安裝Docker、Tomcat并部署官網(無後端互動)删除所有未運作的容器(已經運作的删除不了,未運作的就一起被删除了)上傳!/bin/bash

在阿裡雲上的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"

出現如下提示,則正确:

在阿裡雲ECS上安裝Docker、Tomcat并部署官網(無後端互動)删除所有未運作的容器(已經運作的删除不了,未運作的就一起被删除了)上傳!/bin/bash

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

執行到此步時,出現以下報錯:

在阿裡雲ECS上安裝Docker、Tomcat并部署官網(無後端互動)删除所有未運作的容器(已經運作的删除不了,未運作的就一起被删除了)上傳!/bin/bash

執行以下語句:

apt install docker.io

會顯示安裝過程,并可明顯看到成功與否,基本都是成功的,然後重新執行   sudo service docker restart 

11.切換目前會話到新的組:

newgrp - docker

  1. 安裝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

在阿裡雲ECS上安裝Docker、Tomcat并部署官網(無後端互動)删除所有未運作的容器(已經運作的删除不了,未運作的就一起被删除了)上傳!/bin/bash

猜測因為啟動了網絡,那麼是否有可能是防火牆的原因,輸入 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下,是不能直接通路到的

在阿裡雲ECS上安裝Docker、Tomcat并部署官網(無後端互動)删除所有未運作的容器(已經運作的删除不了,未運作的就一起被删除了)上傳!/bin/bash

其實大家可以類比下自己的項目,Tomcat本身的加載機制已經很完善和嚴謹,是以我沒必要怨怼,按規則做就好

我用website包了一層,放到webapps下

然後通過 FileZilla 直接傳輸到Ubantu的Tomcat/webapps下,重新檢視目前的容器是否有在啟動

指令行:docker ps -a,

如果隻是 docker ps,隻會顯示目前運作中的容器, 加上  -a 把全部容器的狀态顯示出來,我們隻需檢視非exited 的就好,如果覺得不想看那麼多,可以做下清理:

指令行:

删除所有未運作的容器(已經運作的删除不了,未運作的就一起被删除了)

sudo docker rm $(sudo docker ps -a -q)

做鏡像的話,阿裡雲上的容器鏡像服務,有比較專業的說明,還算比較容易操作

完成以上操作,我們打開浏覽器通路:

在阿裡雲ECS上安裝Docker、Tomcat并部署官網(無後端互動)删除所有未運作的容器(已經運作的删除不了,未運作的就一起被删除了)上傳!/bin/bash

然後很高興的關閉了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多個域名