一,準備階段
docker官網:https://docs.docker.com/get-started/
docker hub:https://www.docker.com/products/docker-hub
一臺雲服務器:https://swas.console.aliyun.com/#/servers,儘量選centos版本安裝。由於貧窮,本人只能使用一臺學生機,還是最低配置1核2G,不過完全夠用了
二,安裝docker
1,打開xshell連接服務器
2,下載安裝包
sudo yum install -y yum-utils
3,設置倉庫鏡像
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4,更新yum軟件包索引
yum makecache fast
5,安裝相關的docker docker-ce爲社區版 docker-ee 爲企業版
yum install docker-ce docker-ce-cli containerd.io
6,啓動docker
systemctl start docker
7,查看是否安裝成功,如若出現安裝成功,則會顯示docker的信息
docker version
8,查看鏡像,由於並沒有安裝東西,所以應該是空的
docker images
9,卸載docker,如若需要的話,不需要則跳過
#卸載依賴
yum remove docker-ce docker-ce-cli containerd.io
#刪除資源
rm -rf /var/lib/docker
10,如需重新安裝的話,則需要卸載舊版本.不需要則跳過
三,安裝tomcat
1,在此之前,由於本人遇到了比較多的坑,因此經常需要做的一件事就是,重啓docker,不管三七二十一,重啓解決一半問題
sudo service docker restart
2,由於這個docker是外國人寫的,因此呢下載東西的話也是需要阿里雲鏡像加速的。打開阿里雲,再打開控制檯,搜索容器鏡像,就能找到鏡像加速服務了,把這一大段輸入即可xhell即可,這樣下載東西就非常的快了。每個服務器都有屬於自己的加速器,用別人的估計也沒啥用吧
3,下載centos鏡像
docker pull centos
4,準備下載tomcat了。如果需要制定版本的話
可以去 https://www.docker.com/products/docker-hub 上面輸入查詢,把自己想要的版本找到即可
也可以直接通過search 進行查找,如查找tomcat
docker search tomcat
接下來就開始下載了,由於本地使用的是tomcat9.0,因此下載tomcat9.0就行了
docker pull tomcat:9.0
如果不指定版本的話,則默認下載最新版本,裝了鏡像下載大家就可以發現超級快
5,查看該鏡像是否安裝成功,即查看所有的鏡像
docker images
這是本人安裝的一部分,可以發現tomcat在這裏面了,版本也是9.0
6,安裝成功之後就開始運行鏡像了
docker run -d -p 8080:8080 --name tomcatqaq tomcat:9.0
解釋一下:
-d :就是以後臺運行方式運行 也可以 -t :以交互式運行
-p :暴露端口號第一個8080是暴露linux 的端口號,這樣外部才能連接linux
第二個端口號暴露的是容器的端口號,這樣linux才能連接容器
這樣外部就能通過服務器訪問容器了
--name:給容器取名
tomcat:9.0:運行時加上版本,指定是這個服務器
7,鏡像運行後,可以通過ps查看正在運行的容器,就能發現剛剛運行的已經在運行了
docker ps
docker ps -a :用於查看最近全部運行過的容器
刪除容器,這個看需求,說說我遇到的坑吧,就是將我雲服務器開發的端口都試了一大堆,最後發現只能8080:8080才能訪問,一次直接遞歸刪除所有的容器,這樣端口自然就解放出來了
docker rm id:不能刪除正在運行的容器,否則需要使用rm -rf刪除
docker rm -f $(docker ps -aq) 遞歸刪除所有的容器
8,關閉防火牆,如果沒有關閉防火牆,那麼curl連接肯定失敗,這也是我遇見的坑
service firewalld status :查看狀態
service firewalld stop:關閉防火牆
9,阿里雲開啓允許訪問的端口號,由於本人用的是輕量級阿里雲服務,就是學生機,所以直接在防火牆那裏就能找到。如果不是學生機,就可以在自己的服務器創建本實例安全組了
10,測試
使用curl測試端口號,通過ps 可以查出運行狀態以及端口號,測試即可。可以發現出現頁面404,說明可以訪問了,只是路徑出現問題
也可以在瀏覽器測試,也出現此頁面。
這也是我遇到的一個大坑,以爲我之前訪問的是 宿主機ip:8080 ,一直訪問失敗,後面才發現,原來是要自己的服務器的 外網:8080 才能訪問
11,由於404,肯定是頁面出現問題,所以就進去webapps下找
進入正在運行的tomcat9.0容器
docker exec -it tomcatqaq /bin/bash
進入後可以發現兩個重要的webapps以及webapps.dist
在自己tomcat可以發現,下面的東西時全部存在webapps文件夾下的,
點開webapps時發現爲空
原來這個tomcat是被docker給閹割了,就是將原本屬於webapps下面的全部東西放入到webapps.dist文件下面了
接下來就好辦了,可以cp賦值過去,也可以rm移動過去,當然還可以直接刪除webapps文件,再將webapps.dist重命名爲webapps。這裏選擇複製
再切換到webapps,就能發現裏面有東西了
12,完成以上步驟,就可以進行最終的測試了
可能需要30s左右,我們就能在瀏覽器上訪問了。一定要用這個外網ip,而不是宿主機ip,真的我進這個坑一上午。就能出現熟悉的·界面了
curl 0.0.0.0:8080
大功告成!
四,總結,遇到的坑
1,修改root@後的別名
vi /etc/hostname
2,關閉防火牆
systemctl stop firewalld.service
systemctl disable firewalld.service
3,如何解決端口映射過多而導致端口被佔用問題,刪除容器即可
docker rm id:不能刪除正在運行的容器,否則需要使用rm -rf刪除
docker rm -f $(docker ps -aq) 遞歸刪除所有的容器
4,使用的端口映射路徑使用8080
5,瀏覽器訪問用服務器外網ip
6,重啓解決百分之50問題
1,重啓docker:sudo service docker restart
2,啓動services文件:systemctl enable docker
五,tomcat安裝成功!
如需更多的命令,請訪問官方文檔:
https://docs.docker.com/get-started/