Docker Swarm笔记

作者:刘宾, 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 写这篇文章主要是为了今后毕业论文素材上的整理,同时对docker进行巩固温习。大纲: docker简介docker...
    胡图仙人阅读 12,227评论 2 96
  • 农历二月初二,春回大地,万物复苏,蛰伏了一冬的昆虫都从冬眠中苏醒了,传说中的龙也从沉睡中醒来,昂首抬头回...
    悠然见南山_sunshine阅读 3,978评论 16 3
  • 实现对象的拷贝 $.type(item)上面的这句代码只是做了一个数据类型的判断具体的实现方法可以使用Object...
    赵xiao赛阅读 906评论 0 0

友情链接更多精彩内容