美文网首页微服务
Docker Swarm笔记

Docker Swarm笔记

作者: 橄榄树下的托马斯 | 来源:发表于2017-05-28 11:55 被阅读0次

    作者:刘宾, thomas_liub@hotmail.com
    请尊重作者著作权,转载请注明出处,谢谢!


    一 创建Docker Swarm网络

    Docker Swarm网络由管理节点和工作节点组成,通常情况需要最小3个管理节点和任意多个工作节点。同时,可以设置管理节点是否接受任务,从而使管理节点隔离出来只负责Docker集群工作。

    1. 创建Manager节点

    在28服务器上创建一个管理节点。

    docker swarm init --advertise-addr 192.168.1.28
    

    2. 创建工作节点

    在27和29两个docker host上创建工作节点。

    docker swarm join --token SWMTKN-1-4v9u5pahl5nfne1v88nw6hhe01n3994jzpiq68vmt3eskk0n8a-687qzxnn98c58cv0nw99t0drk 192.168.1.28:2377
    

    3. 创建Overlay网络

    Overlay网络用来连接跨主机容器。

    docker network create --driver overlay --subnet 10.0.9.0/24 mycloud
    

    4. 确认状态

    最后查询节点状态,查询网络状态,查询服务状态。

    docker node ls
    docker network ls
    docker service ls
    

    二 微服务部署-Docker Swarm

    1. 编写Dockerfile

    将应用程序和platform-client库拷贝到容器内,开放内部8090 HTTP端口,供内部REST访问。
    Dockerfile:

    FROM ubuntu:14.05  
    RUN mkdir /source  
    WORKDIR /source
    ADD ./asset-conn/ /source/
    RUN rm /source/pl_lib
    RUN mkdir /source/pl_lib
    ADD ./platform-client/ /source/pl_lib/
    RUN apt-get update
    RUN apt-get install -y python-pip python-dev build-essential python-psycopg2
    RUN pip install -r requirements.txt
    USER root  
    RUN cp /usr/share/zoneinfo/PRC /etc/localtime
    EXPOSE 8090
    CMD python main.py
    

    2. 构建Docker Image

    Docker build:

    docker build -t xxxx:nnnn/test/asset-conn .
    

    3. push到企业库

    推送构建好的image到企业容器库,方便其他节点部署。

    docker login https://xxxx:nnnn  
    username: "admin"; password: "admin"
    docker push xxxx:nnnn/test/asset-conn:latest
    

    4. 在所有worker node上pull image

    docker login https:/xxxx:nnnn  
    username: "admin"; password: "admin"
    docker pull xxxx:nnnn/test/asset-conn:latest
    

    5. 在lead node上创建服务

    可以指定服务需要启动的应用实例个数,实例占用CPU,内存资源。注意,服务名字是云平台上服务间访问的唯一方式,一定要指定正确。

     docker service create --replicas 1 --network mycloud --name asset-conn xxxx:nnnn/test/asset-conn:latest
    

    6. 确认服务正确启动

    在Lead节点上,运行如下命令:

    docker service ls
    docker service ps asset-conn
    docker service inspect asset-conn
    

    7. 查看log

    两种方式:

    1. 登录容器,访问log文件 /source/logs/*.log
    2. 查询容器所在节点,在该节点查询容器log
      1. docker service ps xxx
      2. 登录到该docker host
      3. docker ps, 找到该容器
      4. docker logs -f 容器id

    相关文章

      网友评论

        本文标题:Docker Swarm笔记

        本文链接:https://www.haomeiwen.com/subject/cpthfxtx.html