Docker技术swarm+compose部署服务

一,实验环境

选择三台主机运行swarm,依次为:

节点1:管理器192.168.111.10  

节点2:管理器192.168.111.11  

Node3 192.168.111.12      

1 ,基本环境配置

 3 台保持一致时间NTP 

 3 台关闭的selinux ,开启路由转发


3 台主机根据上面环境修改主机名和IP 地址

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 images


注意:默认情况下,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: 在 composefile V3中, 允许我们通过networks关键字定义一个基于 Docker0 网络的 subnet。然后将我们的服务添加到这个subnet中。这样做的好处实现了服务之间的隔离,一旦我们不需要这组服务了,我们可以通过命令“docker-composedown

安装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 服务ls  


#docker 网络LS 查看网络      


#docker ps -a     

在节点2 上

#docker 服务ls  

#docker 网络ls  


客户端验证:http : //192.168.111.10

 
————————————————
版权声明:本文为CSDN博主「LYK_lalalala」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lyk_lalalala/article/details/79257546

你可能感兴趣的:(Docker)