• docker三剑客docker-compose、docker-machine、swarm


    docker-compose

    安装compose
    curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose
    测试安装
    $ docker-compose --version

    docker-compose version 1.21.2, build 1719ceb

    常用命令

    命令:
      build              Build or rebuild services
      bundle             Generate a Docker bundle from the Compose file
      config             Validate and view the Compose file
      create             Create services
      down               Stop and remove containers, networks, images, and volumes
      events             Receive real time events from containers
      exec               Execute a command in a running container
      help               Get help on a command
      images             List images
      kill               Kill containers
      logs               View output from containers
      pause              Pause services
      port               Print the public port for a port binding
      ps                 List containers
      pull               Pull service images
      push               Push service images
      restart            Restart services
      rm                 Remove stopped containers
      run                Run a one-off command
      scale              Set number of containers for a service
      start              Start services
      stop               Stop services
      top                Display the running processes
      unpause            Unpause services
      up                 Create and start containers
      version            Show the Docker-Compose version information


    https://docs.docker.com/compose/overview/

    https://blog.csdn.net/Dante_003/article/details/70160493

    docker-machine

    简介

    docker-machine是安装docker环境的一个工具,可以在一台机器上通过命令控制几台机器安装docker环境,运行docker命令,创建docker swarm集群的工具。
    安装
    docker-machine和compose有点类似,都是一个可运行的linux二进制文件(下面都是基于linux版本做的),下载下来这个文件后放到/usr/local/bin里面设置文件权限就可以直接使用了,docker-machine的github地址
    https://github.com/docker/machine

    curl -L https://github.com/docker/machine/releases/download/v0.10.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine &&
        chmod +x /tmp/docker-machine &&
        sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
    使用
    按照docker-machine github上的介绍,它是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。根据他的描述和github上的例子可以看出他可以直接在指定平台上创建机器。
    我们这里只测试已经创建好有ip的实体机或者虚拟机。
    docker-machine操作各个机器实际上用ssh无密码访问的,如果是在已经配置好ip的实体机或虚拟机上用就要手动或者使用脚本设置无密码访问了。

     无密码访问
    ssh-keygen #一直回车
    ssh-copy-id root@192.168.1.28 #ip为docker-machine要操作的机器,输入密码
    ##上面结束之后,每台机器上还得安装net-tools,docker-machine会用到netstat命令来检测端口使用情况,如果机器上没有安装会报错。如果你确定那台机器上的端口没问题,即使报错也没问题,最终那台机器还是会加入到docker-machine的管理中。
    yum install net-tools

        连接机器
    docker-machine create -d generic --generic-ip-address=192.168.1.28 node28

    node28为给机器的别名
    -d generic驱动类型
    –generic-ip-address 要控制机器的ip,必须
    –generic-engine-port docker-engine的远程访问端口,默认为2376
    –generic-ssh-key 远程访问机器的私钥,默认使用.ssh/下面的私钥
    –generic-ssh-user 远程访问机器的用户名,默认为root
    –generic-ssh-port 远程ssh访问的端口,默认为22
    –engine-insecure-registry docker-engine的insecure-registry
    –engine-install-url 安装docker-engine的地址,默认为”https://get.docker.com”
    –engine-registry-mirror docker-engine镜像的代理地址
    上面的命令根据国内环境可以换为下面

    docker-machine create
    -d generic
    --generic-ip-address=192.168.1.28
    --engine-install-url=https://get.daocloud.io/docker/  
    --engine-registry-mirror=http://91c0cc1e.m.daocloud.io 
    node28
    通过docker-machine连接了各个机器后,就可以通过docker-machine来操作各个机器了,更多命令查看 docker-machine –help

    https://docs.docker.com/machine/install-machine/

    https://blog.csdn.net/vchy_zhao/article/details/70238472

    swarm

    简介
    swarm从docker1.9版本开始就有了,但功能不完善、性能不稳定,一直不能登入生产环境,从1.12版本内置到了docker-engine中,可以直接使用docker swarm命令来操作swarm。
    swarm是docker集群的资源管理工具。简单点理解,在很多台机器上部署docker,组成一个docker集群,并把整个集群的资源抽象成资源池,使用者部署docker应用的时候,只需要将应用交给swarm,swarm会根据整个集群资源的使用情况来分配资源给部署的docker应用,可以将这个集群的资源利用率达到最大。
    类似的服务框架还有mesos+marathon,kubernetes。
    编者是从很早接触docker的,swarm还没有出来,kubernetes还不成熟没有人在生产环境使用。
    ①最早使用的是mesos+marathon那一套,优点是基于成熟的资源调度管理框架mesos,缺点是部署起来还是很麻烦的,像服务发现、负载均衡等概念在里面也都有,但都是碎片化以插件的形式存在,整个体系感觉不是很完善、不像一个整体。
    ②kubernetes从发布1.0版本以后在生产得到了很多实践,开始步入主流压过swarm和mesos+marathon,kubernetes针对docker应用集群的特点,概括出几个对象,pod、service、replication controller,pod为运行的基本单元,service则是专门来服务发现和服务代理的,replication controller 应用的副本做负载均衡。kubernetes就是一个很专业很全面完善的docker集群管理工具。
    ③swarm在很多方面很像kubernetes,不知道是不是偷偷抄袭的。swarm通过命令就可以很简单的在docker集群中创建应用设置副本数量,内置服务发现代理。swarm+compose≈kubernetes。swarm由于现在内置于docker中,使用部署更简单,功能上和kubernetes很相似,轻量级。
    常用命令
        swarm init
        swarm join
        service create
        service inspect
        service ls
        service rm
        service scale
        service ps
        service update

    https://docs.docker.com/engine/swarm/#feature-highlights

    https://blog.csdn.net/Dante_003/article/details/70171804

  • 相关阅读:
    mount 需要同时设置 noatime 和 nodiratime 吗?
    xfsdump命令使用
    查看linux设备文件系统类型的方法
    Elasticstack 5.1.2 集群日志系统部署及实践
    Kickstart无人值守安装[转载]
    mytop安装,使用mytop监控MySQL性能
    使用Anemometer分析MySQL慢查询记录
    (总结)Web性能压力测试工具之WebBench详解
    mysqlsla快速入门
    Linux下MySQL慢查询分析mysqlsla安装使用
  • 原文地址:https://www.cnblogs.com/fungitive/p/9136120.html
Copyright © 2020-2023  润新知