1. 程式人生 > >將Java EE應用程式部署到Docker Swarm叢集

將Java EE應用程式部署到Docker Swarm叢集

什麼是Docker Swarm?

Docker Swarm叢集

簡單來說,Swarm Manager是一個預先設定好的Docker主機,並且是所有管理的唯一一點。其他Docker主機被定義為節點,並使用TCP與Manager進行通訊。預設情況下,Swarm會使用託管的 基於Docker Hub的Discovery Service,該服務會使用tokens來找到一個叢集的部分節點。每個節點會執行一個Node Agent去註冊被引用的Docker後臺程序,並對其進行監視,並使用該節點的狀態更新Discovery Service。這個容器會在一個節點上執行。

Arun Gupta的部落格還提供了完整的細節,這裡只展示了建立叢集的概要:

#建立叢集
TOKEN = 'docker run swarm create'
#建立Swarm主幹
docker-machine create -d virtualbox --swarm --swarm-master --swarm-discovery token://$TOKEN swarm-master
#建立swarm節點01
docker-machine create -d virtualbox --swarm --swarm-discovery token://$TOKEN swarm-node-01
建立群集節點 02
docker-machine create -d virtualbox --swarm --swarm-discovery token://$TOKEN swarm-node-02

列出叢集顯示:

    NAME        ACTIVE        DRIVER        STATE                URL                    ]SWARM
swarm-master                virtualbox     Running    tcp://192.168.99.106:2376     swarm-master (master)
swarm-node-01               virtualbox     Running    tcp://192.168.99.107:2376     swarm-master
swarm-node-02 * virtualbox Running tcp://192.168.99.108:2376 swarm-master

它有一個主幹和兩個節點。

將Java EE應用程式部署到Docker Swarm

叢集中的所有主機都可以使用單個虛擬主機訪問。Swarm提供標準的Docker API,因此任何與單個Docker主機進行通訊的工具都可以通過與該虛擬主機進行通訊擴充套件到多個Docker主機。

Docker Container Linking Across Multiple Hosts 解釋瞭如何連結多個Docker主機上的容器。它將Java EE 7應用程式部署到一個Docker主機上的WildFly,並將其連線到執行一個在不同Docker主機上的MySQL資料庫中。我們可以使用虛擬主機部署這兩個容器,然後將它們部署到Docker Swarm叢集中。

讓我們開始吧!

Docker Swarm上的MySQL

  1. 啟動MySQL容器:docker run –name mysqldb -e MYSQL_USER=mysql -e MYSQL_PASSWORD=mysql -e MYSQL_DATABASE=sample -e MYSQL_ROOT_PASSWORD=supersecret -p 3306:3306 -d mysql

  2. 容器的狀態如下:

    docker run --name mysqldb -e MYSQL_USER=mysql -e MYSQL_PASSWORD=mysql -e MYSQL_DATABASE=sample -e MYSQL_ROOT_PASSWORD=supersecret -p 3306:3306 -d mysql
  3. 它顯示容器正執行在 swarm-node-01上。確保你使用eval $(docker-machine env --swarm swarm-master)連線到該Docker Swarm叢集 。

  4. 查詢啟動此容器的主機的IP地址:

    inspect --format '{{ .Node.Ip }}' $(docker ps -q --filter 'name=*mysqldb*')
    192.168.99.107

Docker Swarm上的WildFly

  • 通過傳遞主機的IP地址和執行MySQL伺服器的埠來啟動WildFly伺服器:
  • 容器的狀態如下:
~> docker ps
CONTAINER ID        IMAGE                                  COMMAND                CREATED             STATUS              PORTS                           NAMES
ab5717083812        arungupta/wildfly-mysql-javaee7:host   "/opt/jboss/wildfly/   25 minutes ago      Up 25 minutes       192.168.99.108:8080->8080/tcp   swarm-node-02/mywildfly   
b49d627a0431        mysql:latest                           "/entrypoint.sh mysq   34 minutes ago      Up 33 minutes       192.168.99.107:3306->3306/tcp   swarm-node-01/mysqldb

盡情使用吧!

相關推薦

Java EE應用程式部署Docker Swarm叢集

​ 什麼是Docker Swarm? 簡單來說,Swarm Manager是一個預先設定好的Docker主機,並且是所有管理的唯一一點。其他Docker主機被定義為節點,並使用TCP與Manager進行通訊。預設情況下,Swarm會使用託管的 基於

開發完成的java web應用程式部署到tomcat伺服器上的方法

方法一:通過複製web應用到tomcat中實現 通過複製web應用到tomcat中實現時,首先需要將web應用資料夾複製到tomcat安裝目錄下的webapps資料夾中,然後啟動tomcat伺服器,再開啟IE瀏覽器,最後在IE瀏覽器的位址列中輸入“http://伺服器IP:

【Azure DevOps系列】Azure DevOps使用Docker.NET應用程式部署在雲伺服器

## Docker持續整合 本章我們要實現的是通過我們往程式碼倉庫push程式碼後,我們將每次的push進行一次docker自動化打包釋出到docker hub中,釋出到之後我將進行部署環節,我們將通過ssh方式將我們的.NET應用程式pull並run到我們的雲伺服器上。 Dockerfile 如下所示:

flask筆記:13:Flask應用程式部署在nginx,tornado的簡單方法

flask程式碼,main.py: from flask import Flask app = Flask(__name__) @app.route('/') def hello_world():

用Visual Studio應用程式部署到Windows Azure平臺

微軟給開發人員三種方式將應用程式部署到Windows Azure平臺上: 1)通過Windows Azure管理介面上傳應用。具體的請參考 2)通過PowerlShell部署Windows Azure應用程式,具體的的請參考微軟MSDN文章: 3)通過Visual Studio部署應用程式到Windo

JAVA WEB應用部署到Mopaas上

Mopaas:www.mopaas.com 可免費提供java web伺服器,上傳war檔案即可部署。 1.開發一個簡單的JavaWeb應用 Jsp程式碼 <%@ page language="java" contentType="te

Zend Studio使用教程:應用程式部署到Zend Server(1/2)

Zend Studio允許您從現有的SVN專案中建立一個新的PHP專案。在本教程中,您將獲的一個現有的SVN專案。 教程內容 在本教程中,您將學習: 從Zend Studio中的SVN建立一個新的PHP專案,您將獲得一個現有的SVN帳戶和專案。在本地Zend Ser

使用MyEclipse開發Java EE應用:用XDoclet創建EJB 2 Session Bean項目(三)

str 文件存儲 字段 des 管理 新版 enter ecif class MyEclipse限時秒殺!活動火熱開啟中>> 【MyEclipse最新版下載】 三、配置XDoclet支持的項目 默認情況下,MyEclipse EJB項目未配置使用XDocle

使用MyEclipse開發Java EE應用:EJB項目開發初探(上)

編輯器 應用服務器 工具 xdoclet 屬性 ctu xdoc 直接 project 你開學,我放價!MyEclipse線上狂歡繼續!火熱開啟中>> 【MyEclipse最新版下載】 一、MyEclipse EJB開發工具 Enterprise Java

使用MyEclipse開發Java EE應用:EJB項目開發初探(下)

計時 包含 devel 開啟 有關 中文 ren 向導 all 你開學,我放價!MyEclipse線上狂歡繼續!火熱開啟中>> 【MyEclipse最新版下載】 三、EJB 3.x項目中的持久性支持 當創建EJB 3.x項目時,作為選項您可以添加JPA支持。

java服務端程式部署伺服器以及壓力測試過程

這段時間負責公司的服務端Java程式開發,做了一個遊戲的登入、註冊、支付、token驗證以及相關統計介面的服務端程式。 考慮到遊戲中如果是多使用者的情況下登入註冊介面在開服的時候會產生很大的併發,所以再上線之前做了一些壓力測試。 伺服器配置:亞馬遜雲伺服器8核心、15G記憶體、200G硬碟、

Docker Swarm叢集部署Traefik負載均衡器

   一、建立單節點的Docker Swarm叢集 docker swarm init   二、在Swarm叢集中建立一個網路 docker network create --driver=overlay traefik --attachable  

[譯] 使用 Kotlin 你的應用程式從 iOS 轉換成 Android

原文地址:Converting your iOS App to Android Using Kotlin 原文作者:Lisa Luo 譯文出自:掘金翻譯計劃 本文永久連結:github.com/xitu/gold-m… 譯者:iWeslie 校對者:LoneyIsE

Docker(二十)-Docker Swarm叢集部署

介紹 Swarm 在 Docker 1.12 版本之前屬於一個獨立的專案,在 Docker 1.12 版本釋出之後,該專案合併到了 Docker 中,成為 Docker 的一個子命令。目前,Swarm 是 Docker 社群提供的唯一一個原生支援 Docker 叢集管理的工具。它可以把多個 Docker 主

實驗十五 GUI程式設計練習與應用程式部署

                                            &

求解一元二次方程,編制一個java application應用程式,求3X2+4X-1=0的根。

一、題目要求:  編制一個java application應用程式,求3X2+4X-1=0的根。 解析: 求解一元二次方程我們需要根據判別式來判斷方程是否有解,本次我用“i”來作為判別式,j和k分別是方程在有解情況下的兩個解(兩個相同解和兩個不同

利用“Java同包同名類執行順序”取消Java 網站應用程式Licence驗證

如果是在tomcat裡執行,lib目錄下一大堆的JAR包,不同的JAR包裡可能會有相同的包名類名,JRE按照JAR名字的字母順序載入JAR檔案,同名類如果已載入,則後面的同名類會忽略。 公司購買的一款Java web 應用程式 ,當然是有授權碼的,雖然買的全部授權,沒有年限限制,但是是按年授權,包括測試環境

Docker Swarm 叢集部署

介紹      Swarm 作為Docker 三劍客之一,於2014年提出,自 v1.12.3 以來, docker swarm 成為 docker 引擎內建的服務。它和谷歌的 K8s 產生了直接競爭。很難說哪個好,對於熟悉 docker 容器的人來說,docker s

Java Error 應用程式已被Java安全阻止

我的Java版本是Java 8 Update 31開啟Oracle E-Business Suite報Java安全性錯誤:錯誤內容:應用程式已被Java安全阻止出於安全原因,應用程式現在必須滿足“高”或“非常高”安全設定的要求或屬於“例外站點”列表的一部分才能允許執行。原因:您的安全設定已阻止自簽名的應用程式

Spark 2.3.0+Kubernetes應用程式部署

 Spark2.3.0+Kubernetes應用程式部署Spark可以執行在Kubernetes管理的叢集中,利用Native Kubernetes排程的特點已經被加入Spark。目前Kubernetes排程是實驗性的,在未來的版本中,Spark在配置、容器映像、入口可能會有