DOCKER swarm 集群

swarm 集群安装(ubuntu 14.04 docker 1.82)

 方法一:使用静态文件

1.使用静态文件搭建swarm 集群,关闭防火墙

2.安装docker ,保持docker版本一致(docker version).

3.安装软件,升级docker

apt-get update

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"

apt-get install -y lxc-docker

apt-get update -y lxc-docker

apt-get install -y suckless-tools

4.下载所有节点下载swarm 镜像

docker pull swarm

5.所有机器上执行

修改/etc/default/docker(所有机器上修改)

DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock"

6.重启docker

service docker restart

7.在主机节点上的/root目录(我这里是10.10.1.181)新建cluster 文件

touch clusterinfo

在clusterinfo输入如下信息

10.10.1.181:2375

10.10.1.182:2375

10.10.1.183:2375

8.执行

docker run --net=none --name swarmanager -d -p 2376:2375 -v $(pwd)/cluster:/root/clusterinfo swarm manage file:///root/clusterinfo

查看集群信息

[email protected]:~# docker -H 10.10.1.181:2376 INFO

Containers: 17

Images: 36

Role: primary

Strategy: spread

Filters: affinity, health, constraint, port, dependency

Nodes: 3

docker01: 10.10.1.181:2375

└ Containers: 9

└ Reserved CPUs: 0 / 4

└ Reserved Memory: 0 B / 1.012 GiB

└ Labels: executiondriver=native-0.2, kernelversion=3.16.0-30-generic, operatingsystem=Ubuntu 14.04.2 LTS, storagedriver=aufs

docker02: 10.10.1.182:2375

└ Containers: 1

└ Reserved CPUs: 0 / 4

└ Reserved Memory: 0 B / 1.012 GiB

└ Labels: executiondriver=native-0.2, kernelversion=3.16.0-30-generic, operatingsystem=Ubuntu 14.04.2 LTS, storagedriver=aufs

docker03: 10.10.1.183:2375

└ Containers: 7

└ Reserved CPUs: 0 / 4

└ Reserved Memory: 0 B / 1.012 GiB

└ Labels: executiondriver=native-0.2, kernelversion=3.16.0-30-generic, operatingsystem=Ubuntu 14.04.2 LTS, storagedriver=aufs

CPUs: 12

Total Memory: 3.035 GiB

Name: 54a2a2965db1

如果能看到所有节点信息则集群安装成功

方法二:动态token集群安装

1.安装docker ,保持docker版本一致.关闭防火墙

docker version

2.安装软件,升级docker

apt-get update

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"

apt-get install -y lxc-docker

apt-get update -y lxc-docker

apt-get install -y suckless-tools

3.所有机器上执行下载swarm 镜像

docker pull swarm

4.修改/etc/default/docker(所有机器上修改)

DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock"

5.重启docker

service docker restart

6.创建集群 token 获得token id

docker run --rm swarm create

token id=29f8c7bf19a6b25432a991c857249300

7.加入集群

7.1

docker run --rm swarm join --addr=10.10.1.181:2375 token://29f8c7bf19a6b25432a991c857249300

docker run --rm swarm join --addr=10.10.1.182:2375 token://29f8c7bf19a6b25432a991c857249300

docker run --rm swarm join --addr=10.10.1.183:2375 token://29f8c7bf19a6b25432a991c857249300

(执行上面命令时不能退出,命令退出节点就会退出.)

在root目录下 新建文件swarm_node_join.sh

3个节点分别输入脚本

docker run --rm swarm join --addr=10.10.1.181:2375 token://29f8c7bf19a6b25432a991c857249300 >/dev/null 2>&1

docker run --rm swarm join --addr=10.10.1.182:2375 token://29f8c7bf19a6b25432a991c857249300 >/dev/null 2>&1

docker run --rm swarm join --addr=10.10.1.183:2375 token://29f8c7bf19a6b25432a991c857249300 >/dev/null 2>&1

执行脚本 sh swarm-node_join.sh &

7.2或者使用以下命令

docker run -d swarm join --addr=10.10.1.181:2375 token://29f8c7bf19a6b25432a991c857249300

docker run -d swarm join --addr=10.10.1.182:2375 token://29f8c7bf19a6b25432a991c857249300

docker run -d swarm join --addr=10.10.1.183:2375 token://29f8c7bf19a6b25432a991c857249300

8.在管理主机上启动swarm manager(或者任意一个docker节点上)

docker run -d -p 2376:2375 swarm manage token://29f8c7bf19a6b25432a991c857249300

查看节点

docker run --rm swarm list token://29f8c7bf19a6b25432a991c857249300

docker -H swarm manager ip:2376 info

docker -H swarm manager ip:2376 ps

9.指定节点运行docker 容器

9.1 首先修改docker节点 标签 修改/etc/default/docker 如下

DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock --label label_name=docker01"

DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock --label label_name=docker02"

DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock --label label_name=docker03"

9.2指定节点上启动容器

docker -H 10.10.1.181:2376 run --name redis_1 -d -e constraint:label_name==docker03 redis

时间: 2024-08-03 20:38:14

DOCKER swarm 集群的相关文章

云计算之路-阿里云上-容器难容:自建docker swarm集群遭遇无法解决的问题

我们从今年6月开始在生产环境进行 docker 容器化部署,将已经迁移至 ASP.NET Core 的站点部署到 docker swarm 集群上.开始我们选用的阿里云容器服务,但是在使用过程中我们遭遇了恐怖的路由服务(acsrouting)路由错乱问题 —— 请求被随机路由到集群中的任一容器,虽然后来阿里云修复了这个问题,但我们对容器服务失去了信心,走上了用阿里云服务器自建 docker swarm 集群的道路. 用上自建 docker swarm 集群之后,本以为可以在云上容器中过上安稳的日

docker swarm集群及其UI部署

一.规划 ①swarm01作为manager节点,swarm02和swarm03作为worker节点. # cat /etc/hosts 127.0.0.1   localhost 192.168.139.175  swarm01  192.168.139.176  swarm02  192.168.139.177  swarm03 ②配置SSH免密登陆 # ssh-keygen -t rsa -P '' # ssh-copy-id -i .ssh/id_rsa.pub [email prote

非节点主机通过内网远程管理docker swarm集群

这是今天使用 docker swarm 遇到的一个问题,终于在睡觉前解决了,在这篇随笔中记录一下. 在 docker swarm 集群的 manager 节点上用 docker cli 命令可以正常管理集群.但是在另外一台不是集群节点的主机上,虽然设置了DOCKER_HOST环境变量 export DOCKER_HOST="tcp://manger节点内网IP:2377" 但连接不上 # docker ps Cannot connect to the Docker daemon at

Docker Swarm集群部署应用

在Docker Swarm集群部署应用 我们过去使用docker run的命令创建容器, 把前面替换成docker service create就行了. 建议搭建一个registry,为所的docker主机提供镜像下载,否则你需要在每个docker主机本地存在容器镜像. 所以搭建一个私有仓库,由私有仓库提供所需要的镜像, 本实验环境中用node1同时作为registry. 拉取本地私有仓库registry,查看registry镜像 基础环境 全部为CentOS7系统,Docker 版本为1.12

docker swarm集群部署

docker swarm 集群构建: swarm 在docker 1.12 版本后内置 #h官方文档tps://docs.docker.com/engine/swarm/#feature-highlights 系统环境: centos7.3 docker17.06 1.初始化manager节点: docker swarm init 为实现高可用,manager节点需要有奇数个,类似zookerper选举制度. 2.复制生成的命令,在node节点运行. #docker swarm join-tok

故障公告:docker swarm集群“群龙无首”造成部分站点无法访问

今天傍晚 17:38-18:18 左右,由于 docker swarm 集群出现 "The swarm does not have a leader" 问题,造成博问.闪存.园子.小组.openapi 无法正常访问,由此给您带来麻烦,请您谅解. 目前我们已经迁移至 asp.net core 的站点都部署在 docker swarm 集群上,节点用的是阿里云服务器,操作系统是 ubtunu 16.04 ,docker engine 版本是 17.06.0-ce, build 02c1d8

通过docker-machine和etcd部署docker swarm集群

本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使用一个集群,你运行的容器可能会在容器中的任何一个节点上运行: 首先盗一张 docker swarm的架构图: 图片来源 https://yeasy.gitbooks.io/docker_practice/content/swarm/intro.html 在使用 Swarm 管理docker 集群时,

从零开始搭建Docker Swarm集群

从零开始搭建Docker Swarm集群 检查节点Docker配置 1. 打开Docker配置文件(示例是centos 7)vim /etc/sysconfig/docker 2. 添加-H tcp://0.0.0.0:2375到OPTIONSOPTIONS='-g /cutome-path/docker -H tcp://0.0.0.0:2375' 3. CentOS6.6 需要另外添加-H unix:///var/run/docker.sockOPTIONS='-g /mnt/docker 

云计算之路-阿里云上:重启 manager 节点引发 docker swarm 集群宕机

为了迎接春节假期后的访问高峰,我们今天对 docker swarm 集群进行了变更操作,购买了1台阿里云4核8G的服务器作为 worker 节点,由原来的  3 manager nodes + 2 worker nodes 变为  3 manager nodes + 3 worker nodes . 晚上,我们对已经持续运行一段时间的5个节点逐一进行重启操作,重启方式如下: 1)docker node update --availability drain 让节点下线2)阿里云控制台重启服务器3

Docker Swarm集群初探

前言 相信Docker技术大家都有所了解,单个Docker能发挥的作用毕竟有限,也不便于管理,所以Docker得组集群来使用才能发挥强大的技术优势.既然要组集群那就涉及诸如Docker的资源调度.管理等等一系列问题.目前涉及Docker集群的三个主要的技术无外乎Swarm.Kubernetes.Mesos三种.从本文开始作者将会一一实践这几种主要的Docker集群技术,话不多说,现在开始. 注意:作者的kubernetes相关实践在此 环境准备 Mac OS X 10.13.2 Docker 1