淺析SpringBoot打包上傳到docker并實(shí)現(xiàn)多實(shí)例部署(IDEA版)
最近有一個(gè)朋友問(wèn)我有沒(méi)有玩過(guò)docker,回答起來(lái)底氣不是很足 ^ - ^ (剛開(kāi)始玩cloud的時(shí)候接觸過(guò),玩過(guò)一會(huì),后面在實(shí)際開(kāi)發(fā)中比較少用,所以基本上可以說(shuō)是忘記了.),今天花了點(diǎn)時(shí)間整理之前的筆記以及整理走一個(gè)流程,記錄一下吧,下次玩得時(shí)候C V 就好啦~
1. Docker的安裝以及開(kāi)啟遠(yuǎn)程訪問(wèn)
1.1 安裝
# 檢查虛擬機(jī)內(nèi)核版本,必須是3.10及以上uname -r# 安裝dockeryum install docker# 輸入y確認(rèn)安裝# 啟動(dòng)dockersystemctl start docker# 查看docker版本docker -v# 開(kāi)機(jī)啟動(dòng)dockersystemctl enable docker# 停止dockersystemctl stop docker# 重啟dockersystemctl restart docker
1.2 開(kāi)啟遠(yuǎn)程訪問(wèn)
修改文件 docker.service
vim /usr/lib/systemd/system/docker.service
修改ExecStart這行#ExecStart=/usr/bin/dockerd -H fd://?containerd=/run/containerd/containerd.sockExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
# 重新加載配置文件systemctl daemon-reload # 重啟服務(wù)systemctl restart docker.service # 查看端口是否開(kāi)啟 (如果是阿里云等服務(wù)器,需要 '安全' -> '防火墻' 開(kāi)啟端口2375)netstat -nlpt# 查看是否生效curl http://127.0.0.1:2375/info
2. IDEA 安裝 docker 插件并且連接
2.1 安裝插件
這個(gè)很簡(jiǎn)單,就一步一步截圖了。。。(這個(gè)誰(shuí)呀,怎么使用漢化的的 IDEA 呀~~)
2.2 連接docker
3. 打jar包并且編寫Dockerfile打jar這個(gè)在這里不贅述。。。編寫Dockerfile,注意一下劃線的地方,然后注意修改一下
FROM java:8# 維護(hù)者信息MAINTAINER houyu# 這里的 /tmp 目錄就會(huì)在運(yùn)行時(shí)自動(dòng)掛載為匿名卷,任何向 /tmp 中寫入的信息都不會(huì)記錄進(jìn)容器存儲(chǔ)層VOLUME /tmp# 復(fù)制上下文目錄下的 /build/libs/fastboot-0.0.1.jar 到容器里COPY /build/libs/fastboot-0.0.1.jar fastboot-0.0.1.jar# bash方式執(zhí)行,使fastboot-0.0.1.jar可訪問(wèn)# RUN新建立一層,在其上執(zhí)行這些命令,執(zhí)行結(jié)束后, commit 這一層的修改,構(gòu)成新的鏡像。RUN bash -c 'touch /fastboot-0.0.1.jar'# 指定時(shí)區(qū)# ENV TZ=’Asia/Shanghai’# 聲明運(yùn)行時(shí)容器提供服務(wù)端口,這只是一個(gè)聲明,在運(yùn)行時(shí)并不會(huì)因?yàn)檫@個(gè)聲明應(yīng)用就會(huì)開(kāi)啟這個(gè)端口的服務(wù)EXPOSE 10007# 指定容器啟動(dòng)程序及參數(shù) <ENTRYPOINT> '<CMD>'ENTRYPOINT ['java','-jar','fastboot-0.0.1.jar', '--spring.profiles.active=prod']
4. IDEA 配置構(gòu)建鏡像
4.1 配置運(yùn)行腳本
4.2 運(yùn)行腳本
5. 宿主機(jī)查看鏡像并且確認(rèn)部署成功
6. 部署多實(shí)例
具體的命令在后面:
操作腳本
# 查看鏡像docker images# 查看安裝的容器docker ps -a# 克隆c1726e8f3819鏡像 安裝成為一個(gè)fb1.2的容器# -d:后臺(tái)運(yùn)行# -p: 將主機(jī)的端口映射到容器的一個(gè)端口 主機(jī)端口:容器內(nèi)部的端口docker run --name fb1.2 -d -p 10008:10007 c1726e8f3819 # 查看安裝的容器docker ps -a # 查看運(yùn)行中的容器docker ps # 驗(yàn)證fb1.1curl 127.0.0.1:10007 # 驗(yàn)證fb1.2curl 127.0.0.1:10008
常用的docker命令(私人美酒)
1)、鏡像操作(https://hub.docker.com/)
1、檢索鏡像的詳細(xì)信息,如鏡像的TAG。docker search 鏡像關(guān)鍵字 如:docker search redis2、拉取鏡像(:tag是可選的,tag表示標(biāo)簽,多為軟件的版本,默認(rèn)是latest)docker pull registry.docker-cn.com/library/redis:5.0.3 加速拉取docker pull 加速地址+鏡像名:tag 如:docker pull redis:5.0.33、查看所有本地鏡像docker images4、刪除指定的本地鏡像docker rmi 鏡像Id或名稱 如:docker rmi Tomcat5、重命名鏡像docker tag IMAGEID(鏡像id) REPOSITORY:TAG(倉(cāng)庫(kù):標(biāo)簽)
2)、容器操作(軟件鏡像----運(yùn)行鏡像----產(chǎn)生一個(gè)容器)
1、搜索鏡像docker search tomcat2、拉取鏡像(:tag是可選的,tag表示標(biāo)簽,多為軟件的版本,默認(rèn)是latest)docker pull tomcat:latest3、根據(jù)鏡像啟動(dòng)容器(latest可以省略,其他標(biāo)簽一定要加上)-d:后臺(tái)運(yùn)行-p: 將主機(jī)的端口映射到容器的一個(gè)端口 主機(jī)端口:容器內(nèi)部的端口docker run --name 別名 -d 主機(jī)端口:容器內(nèi)部的端口 REPOSITORY/IMAGE ID如:docker run --name mytomcat -d 8080:8080 tomcat:latest3.1 重啟容器docker restart 容器名稱/ID4、查看運(yùn)行中的容器docker ps5、查看所有已安裝的容器docker ps -a6、停止運(yùn)行中的容器docker stop 容器的id/名稱 7、啟動(dòng)容器docker start 容器的id/名稱8、刪除一個(gè)容器docker rm 容器的id/名稱9、查看容器的日志docker logs container-name/container-id(容器名稱或容器ID)10、進(jìn)入指定容器空間docker exec -it 容器名稱/ID /bin/bash如:docker exec -it tensquare_es /bin/bash
7. 安全問(wèn)題請(qǐng)不要在線上環(huán)境開(kāi)啟docker遠(yuǎn)程訪問(wèn),否則可能會(huì)被當(dāng)做肉機(jī)
具體可閱 Docker暴露2375端口導(dǎo)致服務(wù)器被攻擊解決方法!
到此這篇關(guān)于淺析SpringBoot打包上傳到docker并實(shí)現(xiàn)多實(shí)例部署(IDEA版)的文章就介紹到這了,更多相關(guān)spring boot 打包上傳docker內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)經(jīng)驗(yàn)分享2. jsp文件下載功能實(shí)現(xiàn)代碼3. asp.net core項(xiàng)目授權(quán)流程詳解4. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法5. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫特效6. XMLHTTP資料7. ASP常用日期格式化函數(shù) FormatDate()8. html中的form不提交(排除)某些input 原創(chuàng)9. CSS3中Transition屬性詳解以及示例分享10. ASP基礎(chǔ)入門第八篇(ASP內(nèi)建對(duì)象Application和Session)
