原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自IT人故事會(huì),謝謝!
原文鏈接地址:『高級(jí)篇』docker之Mesos微服務(wù)部署(26)創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供房山網(wǎng)站建設(shè)、房山做網(wǎng)站、房山網(wǎng)站設(shè)計(jì)、房山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、房山企業(yè)網(wǎng)站模板建站服務(wù),十多年房山做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
因本人的mac本才8g,無(wú)法同時(shí)啟動(dòng)4個(gè)虛擬機(jī)來(lái)完成,3個(gè)server,1個(gè)harbor。所以鏡像直接用hub.docker.com的。mac就啟動(dòng)3個(gè)虛擬機(jī)。代碼里都增加dockerhub的方式。源碼:https://github.com/limingios/msA-docker mesos分支
通過(guò)提供的源碼shell腳本直接運(yùn)行。
sh start.sh
sh start.sh
sh start.sh
sh start.sh
編寫的shell 腳本
#!/bin/bash
docker run -d --net=host --privileged \
--hostname=192.168.66.101 \
-e MESOS_PORT=5051 \
-e MESOS_MASTER=zk://192.168.1.130:2181/mesos \
-e MESOS_SWITCH_USER=0 \
-e MESOS_CONTAINERIZERS=docker,mesos \
-e MESOS_LOG_DIR=/var/log/mesos \
-e MESOS_WORK_DIR=/var/tmp/mesos \
-v "$(pwd)/mesos/log/mesos:/var/log/mesos" \
-v "$(pwd)/mesos/tmp/mesos:/var/tmp/mesos" \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /sys:/sys \
-v /usr/bin/docker:/usr/local/bin/docker \
mesosphere/mesos-slave:1.7.0 --no-systemd_enable_support \
--no-hostname_lookup --ip=192.168.66.101
sh mesos-slave.sh
編寫的shell 腳本 mesos.sh
!/bin/bash docker run -d --net=host \ --hostname=192.168.66.102 \ -e MESOS_PORT=5050 \ -e MESOS_ZK=zk://192.168.1.130:2181/mesos \ -e MESOS_QUORUM=1 \ -e MESOS_REGISTRY=in_memory \ -e MESOS_LOG_DIR=/var/log/mesos \ -e MESOS_WORK_DIR=/var/tmp/mesos \ -v "$(pwd)/mesos/log/mesos:/var/log/mesos" \ -v "$(pwd)/mesos/tmp/mesos:/var/tmp/mesos" \ mesosphere/mesos-master:1.7.0 --no-hostname_lookup --ip=192.168.66.102
編寫的shell 腳本 marathon.sh
#!/bin/bash
docker run -d --net=host \
mesosphere/marathon:v1.5.12 \
--master zk://192.168.1.130:2181/mesos \
--zk zk://192.168.1.130:2181/marathon
sh mesos.sh
sh marathon.sh
編寫的shell 腳本 marathon.sh
#!/bin/bash
docker run -d --net=host --privileged \
--hostname=192.168.66.103 \
-e MESOS_PORT=5051 \
-e MESOS_MASTER=zk://192.168.1.130:2181/mesos \
-e MESOS_SWITCH_USER=0 \
-e MESOS_CONTAINERIZERS=docker,mesos \
-e MESOS_LOG_DIR=/var/log/mesos \
-e MESOS_WORK_DIR=/var/tmp/mesos \
-v "$(pwd)/mesos/log/mesos:/var/log/mesos" \
-v "$(pwd)/mesos/tmp/mesos:/var/tmp/mesos" \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /sys:/sys \
-v /usr/bin/docker:/usr/local/bin/docker \
mesosphere/mesos-slave:1.7.0 --no-systemd_enable_support \
--no-hostname_lookup --ip=192.168.66.103
sh mesos-slave.sh
我部署下,看我分配的內(nèi)存和cpu就知道為什么叫微服務(wù)了
0.1cpu和128Mb內(nèi)存足夠了。
連接是hub.docker.com,上邊說(shuō)了內(nèi)存太低了沒(méi)辦法啟動(dòng)那邊多鏡像。
點(diǎn)擊json mode 修改,其實(shí)就是修改json文件
修改成畫紅色部分的內(nèi)容,containerPort是應(yīng)用內(nèi)的端口,servicePort是marathon控制的端口(上一節(jié)統(tǒng)計(jì)過(guò)外部端口的數(shù)字)。
跟上邊一樣修改端口
它不需要端口的映射,直接刪除portMappings就可以了
key:HAPROXY_GROUP
value:external
external 跟原來(lái)marathon-lb里面的分組名稱一致
本身就是掩飾,家里的筆記本壞了,不好制作局域網(wǎng)的docker倉(cāng)庫(kù),所以比較麻煩。 不過(guò)大概就是這么操作的。如果照著我做的老鐵,因?yàn)槲抑芭芷饋?lái)沒(méi)問(wèn)題了,建議找個(gè)內(nèi)存大的至少16g的老玩我說(shuō)的配置。
3種類型
判斷是否成功是看命令退出的返回值是不是0
項(xiàng)目的根路徑開(kāi)始的
環(huán)境變量的配置
容器的掛載
那些服務(wù)適合那些主機(jī)標(biāo)簽和權(quán)限都在optional里面
PS:基本的mesos和marathon講述完成了,因?yàn)橹鳈C(jī)內(nèi)存后面的結(jié)果沒(méi)有演示但是基本的命令和鏡像有了后面基本是,基本操作啦!下次一起學(xué)學(xué)docker swarm!