Docker技术swarm+compose部署服务
2018-02-05 10:59
846 查看
一、[b]实验环境[/b]
选择三台主机运行swarm,依次为:
Node1:manager 192.168.111.10
Node2:manager 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
service
ls
#docker
network
ls 查看网络
#docker
ps -a
在node2上
#docker
service
ls
#docker
network
ls
客户端验证:http://192.168.111.10
选择三台主机运行swarm,依次为:
Node1:manager 192.168.111.10
Node2:manager 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
service
ls
#docker
network
ls 查看网络
#docker
ps -a
在node2上
#docker
service
ls
#docker
network
ls
客户端验证:http://192.168.111.10
相关文章推荐
- Docker - 使用Swarm和compose部署服务(containers)
- 混合架构下的docker-tomcat容器协同部署JAVA WEB服务,内嵌ICE中间件服务的技术实现
- Docker Swarm 集群 微服务部署
- 使用docker compose部署服务【转】
- Docker Swarm mode 微服务部署及调用
- Docker 入门笔记 4 - 用Swarm部署服务
- 使用docker-compose 大杀器来部署服务 上
- docker实战2 (docker swarm的应用,docker集群的构建,在docker集群中部署服务的创建与更新)
- 使用docker-compose 大杀器来部署服务 上
- Docker Swarm 入门示例3: 部署服务到swarm
- docker compose部署服务
- 使用docker compose部署服务
- docker swarm模式使用traefik部署服务
- Docker原生服务部署
- Docker Swarm 中最重要的概念- 每天5分钟玩转 Docker 容器技术(94)
- springcloud项目(eureka服务发现+zuul网关)部署至docker中tomcat
- Docker 部署微服务
- 使用docker-compose 一键部署你的分布式调用链跟踪框架skywalking
- 如何调用docker swarm service的API来创建及更新服务