1. 程式人生 > >初次體驗Docker的坑

初次體驗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拿過來想開箱即用,遇到了不少坑。在此記錄一下,避免下次遇到,同時和大家共勉!嘻嘻