Docker Swarm笔记

作者:刘宾, [email protected]
请尊重作者著作权,转载请注明出处,谢谢!


一 创建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笔记)