容器已經來了?那你為什么還在手動搭建服務器環境

前言

  1. 大家好,很抱歉今天才更新,昨天工作有點忙。忙到很晚才得空,今天就把欠大家的先補上。
  2. 今天我們來說說,上一篇文章我們遺留下來的一些問題。
    1. 如何將我們自己的項目部署到鏡像當中?
    2. 如何構建自己的鏡像?
    3. 如何使用github實現自動構建鏡像?
    4. 如何上傳下載自己的鏡像?
  3. 接下來我們一條一條的說,大家安心往下看。
  4. 沒有看上一篇文章的同學,可以先上跳還在手動搭建各種環境?docker容器教你一步到位

docker中如何部署自己的項目?

  1. 上一篇文章中我們介紹了如何拉取tomcat以及java相關鏡像、啟動容器。而且我們也成功的訪問到了tomcat的首頁。那我們該如何將自己的war或者是jar包部署到我們的docker容器中以達到項目部署的目的呢?

  2. 那我們首先來說一下如何在docker鏡像中部署war包。

    1. 首先我們需要docker的環境。

    2. 其次我們需要一個可部署的war包。

    3. 我們創建一個文件夾,將war包copy進去。

    4. 然后通過vim編輯器創建一個Dockerfile

      # 首先進入我們的目錄
      $ cd 我們創建的文件夾
      # 創建Dockerfile文件
      $ vim Dockerfile
      
    5. Dockerfile

      # 在Dockerfile中放入如下命令
      # 指定基礎鏡像
      from hub.c.163.com/library/tomcat
      # 這段可有可無
      MAINTAINER Leiyuan 15326047083@163.com
      # 使用copy或者add命令將 test.war 也就是我們的war包添加到容器中的對應tomcat的webapps目錄中
      COPY test.war /usr/local/tomcat/webapps
      
    6. 如上文件中將war包添加到了webapps中,那當我們啟動容器是,會自動解壓war包。

  3. 其次我們來說一下如何在docker鏡像中部署我們的jar包。

    1. 比如說我們的springboot項目。一般來說我們都是默認生成了可執行jar包。我們在普通的java環境中是執行如下命令以啟動jar包。

      # 這里我們假設我們當前目錄有test.jar文件
      $ nohup java -Dserver.port=部署端口 -jar test.jar
      # nohup意為后臺運行,他的日志文件會自動生成到當前目錄下的nohup.out,當然也可以手動指定
      # -Dserver.port=部署端口。這是為了指定我們的映射端口。也就是說不管我們jar包中的端口為多少。都以部署端口為準
      
    2. 從上面可以看出來我們的jar包運行時需要手動去執行啟動命令的,那我們如何將其部署到docker鏡像中呢?繼續往下看。

    3. 同樣的我們創建一個文件夾,將jar包copy進去。

    4. 然后通過vim編輯器創建一個Dockerfile

    5. Dockerfile

      # 指定基礎鏡像
      from hub.c.163.com/library/tomcat
      # 這行為鏡像信息,可有可無
      MAINTAINER Leiyuan 15326047083@163.com
      # copy 當前目錄下的test.jar到鏡像根目錄下test.jar
      ADD test.jar test.jar
      # 暴露端口,我這里記不清我項目里面暴露的端口是多少,所以我把可能的端口全部暴露出來
      EXPOSE 8080
      EXPOSE 8081
      EXPOSE 80
      # 這段是最終要的
      # 這里是在容器啟動成功后,在容器內執行如下命令。也就是 java -jar test.jar
      ENTRYPOINT ["java","-jar","test.jar"]
      
    6. 看到這里有人可能要問了。這樣的話并非后臺執行,關閉終端jar是不是就停止運行了呢?那這里解釋一下,一般來說,我們啟動容器時同樣會是后臺運行,所以容器內的命令就不用可以的去執行后臺啟動。

  4. docker鏡像所需要的文件我們都準備好了,緊接著我們來說說如何構建docker鏡像。

Dockerfile、jar、war都準備好了,如何構建鏡像?

  1. 首先我們還是要進入剛才創建好的文件夾。

  2. 然后執行如下命令

    # -t 代表指明鏡像名稱和標簽,千萬注意后面還有一個 .   這個點代表當前目錄
    $ docker build -t 鏡像名稱:鏡像標簽 .
    
    WeChat62ca651be5ded5e7ce4971ca4606bb3d
  3. 運行結果如上,那我們查詢一下

    $ docker images
    
    WeChat3eca097af1613e5c6d6b8e137152777c
  4. 查詢沒有問題,那我們的鏡像就算是構建成功。

  5. 那剩下的就是照常起訂就可以,這里就不再贅述。

結束語

  1. 本來以為今天可以說完的,但是腦子里又浮現了一些新的用途想法,所以今天先就到這里。
  2. 來說說剩余的知識點以及剛才在腦子里浮現出來的想法。
    1. 如何使用github實現自動構建鏡像?
    2. 如何上傳下載自己的鏡像?
    3. 既然可以通過github實現鏡像的自動構建,那我們是不是可以通過shell腳本在服務器做定時任務實現自動拉取鏡像并且自動部署呢?
  3. 那上述三點,我們放到明天的文章里面進行講述。
  4. 非常感謝大家的關注和支持,一定會有更多的好的知識點分享給大家。
  5. 感謝??????!!!
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容