docker的高可用配置詳解
Docker Compose
Docker Compose 將所管理的容器分為三層,工程(project),服務(service)以及容器(contaienr)。Docker Compose 運行的目錄下的所有文件(docker-compose.yml, extends 文件或環(huán)境變量文件等)組成一個工程,若無特殊指定工程名即為當前目錄名。一個工程當中可包含多個服務,每個服務中定義了容器運行的鏡像,參數(shù),依賴。一個服務當中可包括多個容器實例,Docker Compose 并沒有解決負載均衡的問題,因此需要借助其他工具實現(xiàn)服務發(fā)現(xiàn)及負載均衡。
安裝Docker Compose
獲取docker-compose-linux-x86_64并將其放置到/bin目錄下,并做軟鏈接和加可執(zhí)行權限
chmod +x docker-compose-linux-x86_64 ln -s docker-compose-linux-x86_64 docker-compose
導入haproxy和nginx,方便后續(xù)的負載均衡測試
docker load -i haproxy docker load -i nginx
在/tmp/編寫compose配置文件
[root@foundation50 compose]#vim docker-compose.yml
在web1 httpd服務創(chuàng)建安裝httpd服務和啟動httpd的文件
[root@foundation50 compose]#vim web1/Dockerfile FROM rhel7:v1 EXPOSE 80 RUN yum install -y httpd ADD index.html /var/www/html CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
在haproxy里建立haproxy.cfg配置文件
查看
查看haproxy的統(tǒng)計信息
訪問172.25.50.1
健康檢查
關閉web3
docker swarm
準備三臺虛擬機
server1,server2,server3安裝docker并啟動服務
需要在一個節(jié)點上運行docker swarm init,然后在其他節(jié)點上運行加入命令即可
[root@server1 ~]# docker swarm init [root@server2~]#docker swarm join \ >--tokenSWMTKN-1-51igcdpg4cbgaokq535qis01osel396of153sdlp8k0ljn0rou-2m9sltwkc4uq1vfmp79ous0e4 \ > 172.25.50.2:2377 This node joined a swarm as a worker.
在server1上查看節(jié)點狀態(tài)
前面已經(jīng)導入了nginx,再導入flsak到三臺機器
[root@server1 ~]# docker load -i flask.tar [root@server2 ~]# docker load -i flask.tar [root@server3 ~]# docker load -i flask.tar
為區(qū)分不同后端的負載均衡,用python寫的一個顯示主機名的語句,導入flask和os
打開flask鏡像,將demo.py腳本放到root下
提交
[root@server1 python]# docker commit vm1 python:demo
創(chuàng)建名為flask集群,并啟動3個后端服務節(jié)點,讀取python下的demo.py腳本
測試
[root@foundation50 docker]# for i in {1..10}:do curl -w "\n" http://172.25.50.1;done
因為是三臺服務器,所以每三次完成一次輪詢,實現(xiàn)了負載均衡
Docker swarm可視化web監(jiān)控界面
導入鏡像并創(chuàng)建
[root@server1 ~]# docker load -i visualizer.tar [root@server1 ~]# docker service create --name=viz --publish=8080:8080/tcp --constrain=node.role==manager --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock dockersamples/visualizer
查看監(jiān)控頁面
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
在IntelliJ IDEA中使用Docker的開發(fā)指南
這篇文章主要給大家介紹了在IntelliJ IDEA中使用Docker開發(fā)指南,文中通過圖文介紹的非常詳細,對我們的使用Docker有一定的幫助,需要的朋友可以參考下2023-09-09docker容器下配置jupyter notebook的操作
這篇文章主要介紹了docker容器下配置jupyter notebook的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03詳解用Docker搭建Laravel和Vue項目的開發(fā)環(huán)境
這篇文章主要介紹了詳解用Docker搭建Laravel和Vue項目的開發(fā)環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03Docker在Windows系統(tǒng)中的安裝和使用方法詳解
這篇文章主要給大家介紹了關于Docker在Windows系統(tǒng)中的安裝和使用方法,Docker允許開發(fā)中將應用、依賴、函數(shù)庫、配置一起打包,形成可移植鏡像Docker應用運行在容器中,需要的朋友可以參考下2023-09-09