前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker Swarm

Docker Swarm

作者头像
叔叔
发布2018-07-25 10:00:15
9550
发布2018-07-25 10:00:15
举报
文章被收录于专栏:叔叔的博客叔叔的博客

学习资料

代码语言:javascript
复制
https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md
https://www.cnblogs.com/ityouknow/p/8903975.html

一、搭建集群

  1. 连接虚拟机

docker-machine ls, 看看有没有虚拟主机,没有就Docker Machine创一个

docker-machine create --driver virtualbox vm

docker-machine ssh vm

  1. 初始化swarm集群
代码语言:javascript
复制
docker swarm init --advertise-addr 193.112.12.253

不出意外会报下面的错

代码语言:javascript
复制
Error response from daemon: --live-restore daemon configuration is incompatible with swarm mode

不慌

代码语言:javascript
复制
 vi /etc/docker/daemon.json
 ```
 改掉 "live-restore": 为false就行。
 然后重启docker,service docker restart
 ```
 To add a worker to this swarm, run the following command:
    docker swarm join \
    --token SWMTKN-1-22aiuetma7nc9tbffzuv8wihx8mpk8v7g8anwt89wwsvm9sk6p-4bjhrdf9ftiuwvkfmw56dkdus \
    193.112.12.253:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

记住这个命令,后面加节点会用。

  1. 查看集群节点信息
代码语言:javascript
复制
docker node ls
  1. 再加个节点

因为我只有一个服务器,没法使用集群了。。

代码语言:javascript
复制
docker-machine create -d generic --generic-ip-address=193.112.12.254  --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root vm2

进入

代码语言:javascript
复制
docker-machine ssh vm2

然后加入集群

代码语言:javascript
复制
docker swarm join \
    --token SWMTKN-1-16l5rdxr3vcof94rux1035p4mekzoaueea49btdsudrhqibnuw-7g93ahno5a6v1tyesipi5bjp6 \
    193.112.12.253:2377
  1. 查看集群

进入管理节点,docker-machine ls

没问题的话,会看到几个类似这样的

这样子集群就搭好了,下面开始部署服务

二、部署服务

使用中国镜像

代码语言:javascript
复制
docker search alpine 
docker pull registry.docker-cn.com/library/alpine
代码语言:javascript
复制
docker service create --replicas 1 --name helloworld alpine ping ihboo.com
docker service ps []查看服务运行情况
docker service ls 查看运行的服务

监控服务

代码语言:javascript
复制
docker service inspect --pretty helloworld

进入子节点,查看服务 docker ps,可以看到运行的服务。

这样子,多环境部署就很方便了,初步发现docker的很棒的地方。

三、服务调整

  1. 实例数量
代码语言:javascript
复制
docker service update --replicas 2 helloworld
docker service ps helloworld

可以看到有两个节点在运行服务

现在修改只要一个实例

代码语言:javascript
复制
docker service update --replicas 1 helloworld

然后发现只有一个实例了。

好方便。

集群节点的添加删除也很方便,join rm。

四、使用docker-compose启动

之前的docker-compose文件,使用这个文件启动多个服务

代码语言:javascript
复制
version: '3.0'
services:
  eureka:
    image: docker/eureka
    container_name: eureka
    ports:
      - "1110:1110"
  gateway:
    image: docker/gateway
    ports:
      - "2000:2000"
    links:
      - eureka
  visualizer:
    image: dockersamples/visualizer:stable
    ports:
      - "8081:8081"
    stop_grace_period: 1m30s
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]

visualizer是可视化页面,可以ip:8081访问部署情况

代码语言:javascript
复制
docker stack deploy -c docker-compose.yml cloud
docker stack ls
docker stack down 移除服务
docker stack services cloud 查看服务

五、疑问

  1. 做集群,必须要不同的服务器吗,不能多个端口启动吗?
  2. 实际使用流程?jenkins是制作镜像,然后push到hub上,master拉镜像,放上去Dockerfile文件,然后master启动这样子?
  3. 容器云?
  4. k8s?
  5. to be continued…
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叔叔的博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 学习资料
  • 一、搭建集群
  • 二、部署服务
  • 三、服务调整
  • 四、使用docker-compose启动
  • 五、疑问
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档