Swarm:从服务中获取节点IP和容器IP

时间:2017-01-09 12:46:24

标签: docker docker-swarm

我怎么能从创建的服务中获取节点ip和容器ip(在管理器和工作者节点上运行)? 我想检查一下这个用于研究docker swarm引擎的循环负载平衡并开发新的负载平衡。

2 个答案:

答案 0 :(得分:0)

我假设您的意思是使用docker命令在终端上获取所有这些信息,以进行编程语言集成检查docker-py

容器

要获取经理和员工信息,您可以使用docker node命令:

docker node ls

为您提供每个节点的详细信息,例如:

ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS
j74jxqb4wz38l2odl2seiiuzh *   db-cluster-1        Ready               Active              Leader

如您所见,它还包括“经理状态”字段

Swarm节点

docker service ps <SERVICE-NAME>

为您提供每个服务节点的列表,其ID和状态,例如:

ID                  NAME                     IMAGE                         NODE                DESIRED STATE       CURRENT STATE         ERROR                       PORTS
ypd65x4i06nn        db-cluster.1       severalnines/mariadb:latest   db-cluster-1        Running             Running 2 hours ago                               
278rdv7m4015        db-cluster.2       severalnines/mariadb:latest   db-cluster-1        Running             Running 2 hours ago                               
z9zr6xgnyuob        db-cluster.3       severalnines/mariadb:latest   db-cluster-1        Running             Running 2 hours ago

然后您可以使用inspect来获取有关任何对象的更多详细信息,例如:

docker inspect ypd65x4i06nn

检查NetworksAttachments部分以获取网络详细信息

答案 1 :(得分:0)

要获取 节点IP地址 ,您可以使用以下命令:

docker node inspect self --format '{{ .Status.Addr }}'

要获取 服务IP地址 ,只需在最后添加服务ID,例如:

docker node inspect self --format '{{ .Status.Addr }}' service-id

要获取 容器IP地址 ,请使用:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container-id

相关问题