docker 簡單安裝java web項目


前言:

Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從Apache2.0協議開源。

Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。

容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。

 

Docker由三部分組成:

倉庫(Repository):Docker用於存放鏡像文件的倉庫

鏡像(image):就是構建容器的源代碼,是一個只讀的模板,由一層一層的文件系統組成的,類似於虛擬機的鏡像

容器(Container):是由Docker鏡像創建的運行實例,類似於虛擬機,容器之間是相互隔離的,包含特定的應用及其所需的依賴文件

 

1、Docker 安裝

   前提條件:

   Docker 要求 Ubuntu 系統的內核版本高於 3.10 ,查看本頁面的前提條件來驗證你的 Ubuntu 版本是否支持 Docker。

   通過 uname -r 命令查看你當前的內核版本:

 

   1.1、切換到root用戶,執行下apt-get update 將apt-get更新到最新版本

   1.2、使用apt-get install -y docker.io 下載docker

   1.3、下載好docker后,可以使用docker version查看docker版本:

     

    1.4 如果1.3中提示無法連接到docker deemon,可以使用service docker start 啟動docker服務

 1.5 測試運行hello-world

  

  出現上圖結果,表名ubuntu docker安裝成功

 

  2、下載tomcat鏡像

  2.1 使用 docker images 來列出本地主機上的鏡像

     

    各個選項說明:

      1)REPOSITORY:表示鏡像的倉庫源

      2)TAG:鏡像的標簽

      3)IMAGE ID:鏡像ID

      4)CREATED:鏡像創建時間

      5)SIZE:鏡像大小

    同一倉庫源可以有多個 TAG,代表這個倉庫源的不同個版本,如tomcat倉庫源里,有7.0、8.0等多個不同的版本,我們使用 REPOSITORY:TAG 來定

    義不同的鏡像。如果你不指定一個鏡像的版本標簽,將默認使用 latest 版本

  2.2 使用 docker pull 命令來下載(鑒於國內網絡問題,后續拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來解決,我使用的是網易的鏡像

    地址:https://c.163.com/hub#/m/home/

    

  2.3 再使用 docker images 查看本地的docker 鏡像

    

 

  3、制作鏡像

  3.1 在用戶目錄下,創建docker目錄,在docker目錄下,創建一個images目錄:

   

  3.2 將java web工程打包成war文件,導出方法可參考:https://blog.csdn.net/gaohuanjie/article/details/52354367

     樓主導出的war文件為seckill.war,然后放到images目錄下

  3.3  在docker目錄下,創建一個Dockerfile文件。文件內容如下:

    

    1、FROM,指定使用哪個鏡像源

    2、MAINTAINER ,指定所有者及郵箱(也可以不寫)

    3、COPY ,將本地文件(seckill.war)拷貝到tomcat/webapps下

  3.4  通過 docker build 命令來構建一個鏡像

    

    參數說明:

      1)-t  指定要創建的目標鏡像名(這里指定鏡像名為seckill,tag為0.0.1)

      2). Dockerfile 文件所在目錄

   3.5 使用docker images 查看創建的鏡像已經在列表中存在,鏡像ID為8eeedbd84830

     

 

   4、運行容器

  4.1 使用 docker run 命令來在容器內運行一個應用程序:

    

    參數說明:

      1)-d  后台運行容器,並返回容器ID (下面的893b開頭的id就是容器id)

      2)-p  是容器內部端口綁定到指定的主機端口(這里是docker中tomcat的8080映射到主機的8888端口)

   4.2 使用 docker ps 列出容器

    

    可以看到容器中有seckill鏡像,容器id取的4.1中返回值的前12位

    4.3 在瀏覽器中訪問8888端口:

    

      可以正常訪問我們的查詢列表,表示我們的seckill鏡像在容器中運行正常

 

  docker更多指令可參考:http://www.runoob.com/docker/docker-command-manual.html

 


免責聲明!

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



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