Docker Swarm

学习资料

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集群
docker swarm init --advertise-addr 193.112.12.253

不出意外会报下面的错

Error response from daemon: --live-restore daemon configuration is incompatible with swarm mode

不慌

 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. 查看集群节点信息
docker node ls
  1. 再加个节点

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

docker-machine create -d generic --generic-ip-address=193.112.12.254  --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root vm2

进入

docker-machine ssh vm2

然后加入集群

docker swarm join \
    --token SWMTKN-1-16l5rdxr3vcof94rux1035p4mekzoaueea49btdsudrhqibnuw-7g93ahno5a6v1tyesipi5bjp6 \
    193.112.12.253:2377
  1. 查看集群

进入管理节点,docker-machine ls

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

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

二、部署服务

使用中国镜像

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

监控服务

docker service inspect --pretty helloworld

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

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

三、服务调整

  1. 实例数量
docker service update --replicas 2 helloworld
docker service ps helloworld

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

现在修改只要一个实例

docker service update --replicas 1 helloworld

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

好方便。

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

四、使用docker-compose启动

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

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访问部署情况

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…

原文发布于微信公众号 - 叔叔的博客(gh_b2b55a55dca8)

原文发表时间:2018-06-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云原生架构实践

Docker Data Center系列(三)- DTR安装指南

安装过程中DTR节点需要能下载docker官网的资源,如果不能访问,可通过其它机器下载软件包,然后执行离线安装。

3186
来自专栏编程坑太多

『高级篇』docker之kubernetes基础集群命令小实战(35)

872
来自专栏IT笔记

Linux运维必须掌握的150个常用命令

有小伙伴留言说之前看了我分享里有一篇Linux基础命令详细版,但是太长,问我有没有简洁版的。 于是我就整理了下,以下这些命令,被称为“Linux运维必须掌握的1...

7178
来自专栏Java开发者杂谈

Redis(1):入门

在Linux下安装redis: wget http://download.redis.io/redis-stable.tar.gz tax xzf redi...

3298
来自专栏魏艾斯博客www.vpsss.net

centOS 如何安装 lnmp 环境

4364
来自专栏智能合约

centos安装lnmp环境

4685
来自专栏java闲聊

Linux ubuntu系统管理命令归纳(二)

1834
来自专栏云原生架构实践

Jenkins 配置CI/CD任务

任务内容是部署/更新一个mysql数据库的容器,类似任务都在yourcompany-database任务视图下。

1905
来自专栏技术之路

Docker Stack 部署web集群

  Docker越来越成熟,功能也越来越强大。使用Dokcer Stack做服务集群也是非常的方便,docker 自己就提供了负载功能,感觉很方便,就想给大家分...

3275
来自专栏哎_小羊

Git Review + Gerrit 安装及使用完成 Code-Review

目录 Code Review 介绍 Gerrit 介绍 环境、软件准备 Git-Review 安装 Gerrit 安装 简单的 Demo 示例 1、Code R...

1.7K9

扫码关注云+社区

领取腾讯云代金券