docker部署war包到阿里雲


最近買了個阿里雲服務器,配置1核2g內存,學習夠了。記錄下過程。

1,服務器相關,請看下圖,雲服務器主要配置是安全組和密鑰,前者是開放端口,后者可以用於遠程連接(比如我windows系統通過putty遠程連接linux主機)

2,服務器安裝docker,pull tomcat和mysql鏡像(如docker pull tomcat)

3,創建自定義網絡,用於容器間的通信,命令如下:

docker network create --subnet 192.168.49.0/24 --gateway 192.168.49.1 network0

以上創建了一個新的網絡network0,可以通過docker network ls查看原始的網絡和創建的網絡


4,使用mysql鏡像創建並啟動容器,命令如下:

docker run -d -p 3366:3306 --name mysql --net network0 --ip 192.168.49.10 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=blog hub.c.163.com/library/mysql

以上,-d表示后台運行,-p 3366:3306表示將容器的3306端口映射到服務器的3366端口(如果不與外界進行數據傳輸,感覺沒必要),--name 后面是容器的名字,--net 指定容器使用的網絡,--ip 指定容器所屬ip,-e 設置環境變量,此處設置了mysql的密碼和創建了一個數據庫blog(不是必要),最后一串東西是mysql鏡像的名字(此處無tag)

5,mysql容器啟動后,如果要在mysql里設置數據庫和表,需要先進入容器,命令為:

docker exec -it mysql /bin/bash

表示進入mysql容器並使用bash命令模式,然后可以正常操作如mysql -uroot -p回車輸入剛才指定的密碼,創建數據庫和表。其實最好通過Dockerfile文件來實現,直接進入容器操作屬於黑箱操作,因為這個操作對於別人來說是不可知的,自己可能都會忘,而Dockerfile必定是記錄了鏡像是如何構建的。我現在還不熟悉Dockerfile。而且應該使用Dockerfile代替commit創建鏡像,總之Dockerfile才是正道。。。


6,使用tomcat鏡像啟動容器,命令如下:

docker run -d -p 8080:8080 --name tomcat --net network0 --ip 192.168.49.11 hub.c.163.com/library/tomcat

以上跟mysql容器的創建差不多,要注意的是需要通信的容器間其ip要處於同一網段,也就是ip前3個數字相同。
7,復制war包到tomcat容器內,命令如下:

docker cp app.war tomcat:/usr/local/tomcat/webapps

以上表示將當前目錄下的app.war包,復制到名稱為tomcat的容器的/usr/local/tomcat/webapps目錄下。這樣項目就部署好了。在第6步時可以使用-v命令將tomcat的webapps與主機某個目錄進行掛載,如果不進行掛載,則會在主機/var/lib/docker/volumes/配置隨機的一個掛載目錄,容器銷毀后此目錄還是存在,久了會占內存吧。最好掛載指定目錄,自己也好清理。
ps:

war包中mysql的配置:url里的ip為mysql容器創建時指定的ip,數據庫和表對應容器中創建的數據庫和表。

windows推薦使用winscp軟件進行雲服務器文件的上傳和下載。

第7步之后訪問網站可能不會立即響應,請耐心等待若干分鍾后再試,項目部署對於服務器可能需要點時間。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM