Docker技術swarm+compose部署服務node
1、實驗環境linux
選擇三臺主機運行swarm,依次爲:nginx
Node1:manager 192.168.111.10docker
Node2:manager 192.168.111.11vim
Node3 192.168.111.12centos
1、基本環境配置tomcat
3臺保持一致時間 ntp服務器
3臺關閉selinux,開啓路由轉發網絡
3臺主機根據上面環境修改主機名和IP地址ssh
2、配置host
以node1爲例
#vim /etc/hosts
3、3臺開啓宿主機的端口
4、配置全部節點的密鑰登陸
配置如下節點密鑰互信,在node1上免密鑰登陸各節點,只在node1上執行生成sshkey
在node1發佈sshkey到各個節點
#ssh-copy-id node1
#ssh-copy-id node2
#ssh-copy-id node3
測試密鑰登陸
5、在全部主機上安裝docker最新版本(才能支持compose的版本3)
下載docker
#curl -fsSL https://get.docker.com/ | sh
啓動docker
查看docker版本
docker swarm 簡介:
Docker engine1.12集成了swarm集羣工具
三個命令行工具建立一個swarm集羣
Docker swarm:開啓swarm模式;加入swarm集羣;配置集羣參數
Docker node查詢集羣節點信息;提高/移除一個管理節點;管理swarm節點主機。
Docker service建立管理service
可查看docker --help
6、建立docker swarm集羣
在node1上初始化docker swarm
node2已加入work
node3已加入
#docker node ls 查看節點個數
爲了使swarm集羣實現高可用,避免出現單點故障,咱們但願創建多個manager集羣 ,經過Docker node promote 節點名,
在node1上使node2的work模式提高到manager。
7、在node1上製做私有倉庫
#docker pull registry:2 下載私有倉庫鏡像
#docker p_w_picpaths
注意:默認狀況下,registry2 會將倉庫存放於容器的/var/lib/registry 目錄下,這樣若是容器被刪除,
則存放於容器中的鏡像也會丟失,因此咱們通常狀況下會指定本地一個目錄掛載到容器的
/var/lib/registry 下,兩個目錄下都有!
·registry 的默認存儲路徑是/var/lib/registry,只是個臨時目錄,一段時間以後就會消失
·因此使用-v 參數,指定個本地持久的路徑
返回{"repositories":[]} 說明 registry 服務工做正常.
注: 鏡像信息存放在/var/lib/registry 目錄下,所以這裏將宿主機目錄映射到/var/lib/registry
3臺都指向 registry 服務器
修改/usr/lib/systemd/system/docker.service,修改後保存退出
#vim /usr/lib/systemd/system/docker.service
#systemctl daemon-reload 先加載
#systemctl restart docker 再重啓docker
經過swarm配合compose實現swarm高可用羣集服務。
8、在node1上安裝compose
networks: 在 compose file V3中, 容許咱們經過networks關鍵字定義一個基於 Docker0 網絡的 subnet。而後將咱們的服務添加到這個subnet中。這樣作的好處實現了服務之間的隔離,一旦咱們不須要這組服務了,咱們能夠經過命令「docker-compose down
安裝docker-compose
只需在node1主機安裝docker-compose
#pip install docker-compose 安裝compose
#ln -s /usr/bin/docker-compose /usr/local/bin/ 作軟鏈接
#docker-compose -v 查看compose版本
9、在node2上配置各服務鏡像
基礎鏡像:
192.168.111.10:5000/centos:centos7
nginx服務鏡像:
dockerfile:
nginx.conf
192.168.111.10:5000/centos:nginx33
Tomcat1配置
服務鏡像:
Dockerfile
Tomcat主配置文件server.xml
編輯首頁文件index.jsp
docker compose+swarm www.tomcat111.com
注意:Tomcat2配置和tomcat1相似只需改動tomcat1的index.jsp
docker compose+swarm www.tomcat222.com
192.168.111.10:5000/centos:tomcat01
192.168.111.10:5000/centos:tomcat02
Tomcat配置完畢
10、在node1上編輯compose文件
#mkdir /docker-compose
#vim docker-compose.yml
注意:在建立網絡的時候會生成一個默認網絡
運行docker stack deploy結合swarm實現多服務管理
Docker stack 命令是docker-compose下的
#docker stack deploy 自定義名字 --compose-file=***.yml
#docker service ls
#docker network ls 查看網絡
#docker ps -a
在node2上
#docker service ls
#docker network ls
#docker ps -a
在node3上
#docker network ls
#docker ps -a
客戶端驗證:http://192.168.111.10