docker部署Web專案(二)

Diy_os發表於2017-06-08

原文是在我的CSDN上用markdown寫的,copy過來造成格式不對,感興趣的朋友可以看CSDN上的原文http://blog.csdn.net/bat_os/article/details/72917779  。
上一篇中極其簡略的介紹如何利用部署web專案,思路是pull 映象後,在此映象的容器中部署web容器執行環境,然後利用此容器重新生成自己映象。方法是可行的,會發現生成自己的映象非常大。這篇文章主要介紹如果利用不同的容器共同構成專案部署環境。 
首先介紹docker中三個基本概念:

倉庫:Docker倉庫(Repository)類似與程式碼倉庫,是Docker集中存放映象檔案的場所。 
映象:Docker映象(Image)類似於虛擬機器的映象,可以將他理解為一個面向Docker引擎的只讀模板,包含了檔案系統。 
容器:Docker容器()類似於一個輕量級的沙箱子(因為Docker是基於Linux核心的虛擬技術,所以消耗資源十分少),Docker利用容器來執行和隔離應用。

以上名詞解釋均來自網路,理解這三個概念至關重要。


  • 首先pull,tomcat、mysql映象到本地 

    docker pull hub.c.163.com/library/tomcat:latest 
    docker pull hub.c.163.com/library/mysql:latest 
  • 利用docker建立網路 
    docker run 建立 Docker 容器時,可以用 –net選項指定容器的網路模式,Docker 有以下 4 種網路模式:

    • host 模式
    • container 模式
    • none 模式
    • bridge 模式

    後來提供了docker network create直接建立網路(老版本不支援),不需要再用其他工具來為容器分配網路。下面就用docker建立網路方式來為容器指定ip,方便容器間通訊。

    docker network create --subnet 192.168.31.0/24 --gateway 192.168.31.1 network0 
    				
    • 1
    • 1

    透過sudo docker network ls發現網路network0已經被建立,在宿主機上用ifconfig也可以檢視到,名稱可能不同。

  • 建立容器並指定IP

    建立mysql容器,並且命名、對映宿主機埠、指定IP、設定root密碼、建立資料庫、以bash方式互動執行: sudo docker run -d -p 3366:3306 --name mysql --net network0 --ip 192.168.31.10 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=yunweather hub.c.163.com/library/mysql
    同樣建立tocat容器: sudo docker run -d -p 8088:8080 --name tomcat --net network0 --ip 192.168.31.11 hub.c.163.com/library/tomcat
    				
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4
    上面建立的容器mysql、tomcat處於同一網段下,可以通訊。以上建立容器時引數設定,請參考映象文件。
    對映宿主機埠號,外界訪問時,指向容器中的服務,而且透過工具可以連線容器中的資料庫,進行操作。 
  • 透過Dockerfile生成映象 
    以上只是建立好了容器,但是tomcat中並沒有部署專案,利用Dockerfile可以幫助生成新的映象。思路大概是: 
    • 把web的war包或者webapp下的檔案放入tomcat下webapp/下
    • 重新生成映象
    • 生成容器
    • 啟動服務 
      新建Dockerfile檔案: 

      from hub.c.163.com/library/tomcat 
      MAINTAINER diy_os diy_os@163.com 
      COPY web.war /usr/local/tomcat/webapps 

      把war包放在同一目錄下,執行sudo docker build -t ImageName:version .即可。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29876893/viewspace-2140507/,如需轉載,請註明出處,否則將追究法律責任。

相關文章