虛擬化主流技術
第一章 虛擬化之ESXi (待補充)
第二章 虛擬化之Hyper-V
第三章 虛擬化之KVM
第四章 虛擬化之Docker(一)
第五章 虛擬化之Docker(二)——部署tomcat
前言
上一節,我們學習了docker的一些基礎命令,理論學習使我枯燥,現在我們一起舉個小栗子來體驗一下docker的便捷
一、首先搞定docker環境,查看上一節!
二、準備一個tomcat鏡像
最好在此之前修改為國內的鏡像源,否則拉取鏡像可能會很慢!
root@ubuntu:~# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
Digest: sha256:a319b10d8729817c7ce0bcc2343a6f97711c7870395019340d96b6aafd6ccbea
Status: Image is up to date for tomcat:latest
docker.io/library/tomcat:latest
我這里已經下載過tomcat鏡像了,第一次下載等一會就好,
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest e0bd8b34b4ea 4 days ago 649MB
IMAGE ID是鏡像的ID,是唯一的,以后操作鏡像就可以使用它,CREATED這一項可以看到鏡像創建時間,SIZE 鏡像大小
三、接下來我們就要跑起來我們的tomcat鏡像,讓它變成一個容器吧,
root@ubuntu:~# docker run -p 8080:8080 --name tomcat-test -d tomcat
9ed320501bc959cfd364f6a505b8cbc04392c805b8c2116f5f7b889e90028657
注意這里的幾個引數,-p 是用來埠映射,第一個8080是宿主機的埠,第二個8080是tomcat容器暴露出的埠,我們想要訪問的就是tomcat容器的8080埠,無奈,外網只能訪問到我們宿主機的埠,所以要把容器的埠通過宿主機暴露出來,–name 用來給我們的容器起一個高大尚的名字,-d是說容器可以去后臺運行了,不要留戀我,
四、容器已經啟動了,但是我們去訪問8080時發現報錯了(404),這時候肯定想罵博主,這不是耍我嘛!讓我慢慢道來,

root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9ed320501bc9 tomcat "catalina.sh run" 8 minutes ago Up 8 minutes 0.0.0.0:8080->8080/tcp tomcat-test
大家請看,容器確實已經開啟了,我沒有說謊,那是為什么呢?都是因為我們下載的tomcat版本惹的禍,你可以換一個版本解決此問題,如果不換怎么解決,我們就需要進入到tomcat-test容器里一探究竟,
root@ubuntu:~# docker exec -it tomcat-test /bin/bash
root@9ed320501bc9:/usr/local/tomcat# ls
BUILDING.txt LICENSE README.md RUNNING.txt conf logs temp webapps.dist
CONTRIBUTING.md NOTICE RELEASE-NOTES bin lib native-jni-lib webapps work
root@9ed320501bc9:/usr/local/tomcat# cd webapps
root@9ed320501bc9:/usr/local/tomcat/webapps# ls
root@9ed320501bc9:/usr/local/tomcat/webapps# ls -al
total 8
drwxr-xr-x 2 root root 4096 Nov 19 06:16 .
drwxr-xr-x 1 root root 4096 Nov 19 06:16 ..
root@9ed320501bc9:/usr/local/tomcat/webapps# cd ROOT
bash: cd: ROOT: No such file or directory
我們發現webapps中竟然沒有我們熟悉的ROOT目錄,那怎么可能訪問到tomcat呢,這下完蛋了,不要急,大家仔細看,這里居然有一個webapps.dist,我們一起看看這是個什么鬼:
root@9ed320501bc9:/usr/local/tomcat# cd webapps.dist/
root@9ed320501bc9:/usr/local/tomcat/webapps.dist# ls
ROOT docs examples host-manager manager
root@9ed320501bc9:/usr/local/tomcat/webapps.dist# cd ROOT
root@9ed320501bc9:/usr/local/tomcat/webapps.dist/ROOT# ls
RELEASE-NOTES.txt asf-logo-wide.svg bg-middle.png bg-upper.png index.jsp tomcat.svg
WEB-INF bg-button.png bg-nav.png favicon.ico tomcat.css
哇,webapps.dist里居然放著我們熟悉的檔案,這不就是我們所知道的webapps應該有的檔案么,我們就用最笨的方法,把webapps.dist中的檔案轉移到webapps中吧,
root@9ed320501bc9:/usr/local/tomcat# mv webapps webapps2
root@9ed320501bc9:/usr/local/tomcat# mv webapps.dist/ webapps
root@9ed320501bc9:/usr/local/tomcat# cd webapps
root@9ed320501bc9:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager
root@9ed320501bc9:/usr/local/tomcat/webapps# cd ROOT
root@9ed320501bc9:/usr/local/tomcat/webapps/ROOT# ls
RELEASE-NOTES.txt asf-logo-wide.svg bg-middle.png bg-upper.png index.jsp tomcat.svg
WEB-INF bg-button.png bg-nav.png favicon.ico tomcat.css
這下是不是又是熟悉的味道了,
五、我們把tomcat首頁變個hello tomcat,以此紀念我們的第一次docker部署tomcat之旅,
root@9ed320501bc9:/usr/local/tomcat/webapps/ROOT# vi index.jsp
bash: vi: command not found
當我們想用vi編輯index.jsp時發現報錯了,沒有vi命令,linux不是自帶了vi嗎,為什么沒有?給我一個理由!沒錯,linux確實有vi,但是docker沒有自帶啊~~,沒關系,看我用魔術!
root@9ed320501bc9:/usr/local/tomcat/webapps/ROOT# echo hello tomcat > index.jsp

是不是docker很便捷啊,快來一起搞起!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/227612.html
標籤:其他
