1. 程式人生 > >製作WebSphere MQ Docker映象

製作WebSphere MQ Docker映象

前幾天已經把WebSphere MQ 7.5安裝在CentOS 7上了,今天經理又要求在另外一個雲的另一臺伺服器上準備一個新環境,看起來安裝MQ的需求還是很旺盛的。因此筆者決定製作一個Docker映象,以加速MQ的準備 MQ軟體的安裝 1) 在一臺Linux伺服器上安裝Docker 2) 上傳WS_MQ_LINUX_ON_X86_64_7.5.0.2_IMG.tar.gz;解壓 3) 在解壓安裝檔案的目錄中執行以下命令,進入Docker容器 docker run -it -v $PWD:/tmp/software centos:7.1.1503 /bin/bash 4) 在/tmp/software目錄下安裝mq
執行 ./mqlicense.sh -accept -text_only,接受許可證 執行 rpm -ivh MQSeriesRuntime-*.rpm MQSeriesServer-*.rpm 5) 執行exit,退出Docker容器 6) 執行以下命令,把安裝了MQ的Docker容器提交為一個Image docker commit wmq_container xsh/wmq75:0.1 製作可以提供服務的MQ image 1) 請在以下地址下載相關的配置指令碼 其中MQ佇列管理器的配置和啟動指令碼在start_queue_manager.sh中,可以根據你的規劃做相應的修改 如果埠不是預設的1414,請同時在Dockerfile中修改EXPOSE
2) 在Dockerfile目錄中執行,建立image docker build --tag xsh/wmq75:0.2 . 3) image建立成功以後,即可使用以下的命令啟動服務 docker run -d -p 1414:1414 --name wmq xsh/wmq75:0.2
4) 如果要自定義佇列管理器,可以仿照start_queue_manager.sh寫一個自己的配置檔案(如some_queue_manager.sh),啟動時載入即可 docker run -d -p <yourport>:<yourport> -v $PWD/some_queue_manager.sh:/start_queue_manager.sh --name wmq xsh/wmq75:0.2

使用MQ Explorer測試佇列 1) 使用MQ的Windows介質安裝MQ Explorer,並啟動 2) 左側選單中在Queue Managers右鍵,選擇Add Remote Queue Manager... 3) Queue Manger Name中填寫遠端對列管理器的名稱,預設為TESTQM。在後續的配置頁面中輸入佇列管理器所在伺服器的ip,使用者名稱為mqm(無密碼) 如果連線成功,恭喜,安裝配置已經成功。 關於人工而非Dockerfile安裝MQ軟體 由於Dockerfile安裝時無法有效的刪除安裝介質,會導致做出的image過大,所以筆者使用了人工安裝的方法。有興趣的讀者可以試試Dockerfile2,做出的image要927MB,比前文所述方法做出的Image要大約500MB 關於作業系統引數的優化 MQ安裝步驟中有一步要求su mqm -c "/opt/mqm/bin/mqconfig",檢查MQ的執行環境符合最小要求。結合Docker Engine的特點,可以在執行Docker Engine的伺服器做相應的配置,Docker容器啟動時即會帶入相關的引數。說明:經過測試,修改執行Docker Engine伺服器系統引數的方法在Ubuntu Server 14.04.4 LTS 64bit + Docker 1.10.有效果;在Cent 6.5 + Docker 1.7.1沒有效果。 1) 執行docker exec -it wmq /bin/bash,進入Docker容器 2) 執行 su mqm -c "/opt/mqm/bin/mqconfig", 檢視哪些引數需要設定 3) 按照mqconfig的提示資訊設定作業系統引數,如筆者的環境提示以下的Fail System V Semaphores   semmsl     (sem:1)  250 semaphores                     IBM>=500          FAIL   semmns     (sem:2)  1 of 32000 semaphores      (0%)    IBM>=256000       FAIL   semopm     (sem:3)  32 operations                      IBM>=250          FAIL   semmni     (sem:4)  1 of 128 sets              (0%)    IBM>=1024         FAIL System Settings   file-max            1568 of 185426 files       (0%)    IBM>=524288       FAIL   tcp_keepalive_time  7200 seconds                       IBM<=300          FAIL Current User Limits (mqm)   nofile       (-Hn)  4096 files                         IBM>=10240        FAIL   nofile       (-Sn)  1024 files                         IBM>=10240        FAIL 則在(執行Docker Engine的伺服器 )/etc/sysctl.conf中設定: kernel.sem = 500 256000 250 1024 fs.file-max = 524288 net.ipv4.tcp_keepalive_time = 300 在(執行Docker Engine的伺服器 )/etc/security/limits.conf中設定: mqm    soft    nofile    10240 mqm    hard    nofile    10240
4) (在執行Docker Engine的伺服器 ) 執行 sysctl -p 後啟動一個新的容器,再次執行 su mqm -c "/opt/mqm/bin/mqconfig" 檢查,全部通過即設定成功

參考文章 Running MQSC commands from batch files from Administering IBM WebSphere MQ Version 7 Release 5