我怎么能从创建的服务中获取节点ip和容器ip(在管理器和工作者节点上运行)? 我想检查一下这个用于研究docker swarm引擎的循环负载平衡并开发新的负载平衡。
答案 0 :(得分:0)
我假设您的意思是使用docker命令在终端上获取所有这些信息,以进行编程语言集成检查docker-py
要获取经理和员工信息,您可以使用docker node命令:
docker node ls
为您提供每个节点的详细信息,例如:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
j74jxqb4wz38l2odl2seiiuzh * db-cluster-1 Ready Active Leader
如您所见,它还包括“经理状态”字段
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