初次體驗Docker的坑

最近在做微信小程序,後臺用的Springboot。以前一直放在服務器的Tomcat裏跑。

感覺不爽,想試下“風靡全球”的Docker來跑一跑。

參考了這位老哥教程:https://blog.csdn.net/caox_nazi/article/details/78366584

沒想到遇到很多阻力。

1、首先在我的Centos7(雲服務器)上安裝Docker -CE

在配置加速器的時候遇到了坑,配置文件少了個符號  命令:sudo vim /etc/docker/daemon.json

坑:

{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

注:一定要配置加速器,不然pull速度(如下圖)

配置了加速器。嘻嘻

配置加速器教程:https://blog.csdn.net/u013372487/article/details/77169430

 

2、安裝完畢。

輸入docker info

有點東西 ,美滋滋

3、打包本地springboot項目

。。。(按照教程裏走)

噹噹噹。。。。坑來了,我嫌教程裏jar包名字不好看 ,自己取了個符合自己氣質的jar包名,哈哈。然而Dockerfile裏什麼都沒改

完了 出毛病了

4、執行docker打包命令 sudo docker build -t docker .(這裏有個點)

完了完了

跳出來一個找不到 docker_spring_boot.jar 的錯誤。原本沒看到,就屁顛屁顛去發佈去了。

發佈也是用的教程裏的-的-d(後臺運行)命令。(docker run -d -p 8080:8080 docker

結果錯誤也沒報,發佈沒成功。本地遠程都訪問不了 localhost:8080

找了半天,終於發現是Dockerfile問題。於是乎改成和jar包符合。(我的jar包名:bzmovie-docker.jar)

OK.大功告成。

5、發佈應用。

最後一個坑。

命令:docker run -d -p 8080:8080 bzmovie

運行此命令,發現還是訪問不了。改成9090:9090 ,8081:8081....

還是不行,又找半天,找到發佈docker應用的日誌,發現tomcat啓動在80端口。又想到了docker的端口映射機制:

**************************************************************

 將容器指定端口指定映射到宿主機的一個端口上。

1

docker run -p 8000:80 -it ubuntu /bin/bash

以上指令會將容器的80端口映射到宿主機的8000端口上。

***************************************************************

冷靜分析了一下。

(1)假如我想用我的ip:8080 這樣訪問 

則我應該這樣發佈

docker run -d -p 8080:80 bzmovie(前面是springboot中tomcat的發佈端口。後面我想能訪問的端口。並且能同時在多個端口發佈同一個應用)

 

(2)如果我想直接ip訪問,即ip:80,命令應該這樣

docker run -d -p 8080:80 bzmovie

查看docker進程。果不其然。

至此網站已經能正常訪問。本人小菜鳥一枚。啥都沒準備就直接把Docker拿過來想開箱即用,遇到了不少坑。在此記錄一下,避免下次遇到,同時和大家共勉!嘻嘻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章