2016-10-13 3 views
3

나는 docker 1.12.1을 실행 중이며 작업 할 레이블별로 노드 필터링을 가져올 수 없습니다. 나는 그것을 기준으로 필터링 할 때, 어떤 노드가 표시되지 않습니다docker swarm 노드를 레이블별로 어떻게 필터링합니까?

$ docker node update --label-add test mr-host 
mr-host 

: 내가 먼저 "테스트"레이블을 추가

$ docker node ls --filter label=test 
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 

필터링을 다른 기준에 의해 이름이 잘 작동과 같은 :

$ docker node ls --filter name=mr-host 
ID       HOSTNAME STATUS AVAILABILITY MANAGER STATUS 
1c48m4msidbqwx7vj0lwib8ef * mr-host Ready Active  Leader 

내가 노드 검사 할 때 레이블이 표시됩니다 :

$ docker node inspect mr-host 
[ 
    { 
     "ID": "1c48m4msidbqwx7vj0lwib8ef", 
     "Version": { 
      "Index": 4865874 
     }, 
     "CreatedAt": "2016-10-12T15:20:10.463286132Z", 
     "UpdatedAt": "2016-10-13T16:29:03.113522485Z", 
     "Spec": { 
      "Labels": { 
       "test": "" 
      }, 
      "Role": "manager", 
      "Availability": "active" 
     }, 
     "Description": { 
      "Hostname": "mr-host", 
      "Platform": { 
       "Architecture": "x86_64", 
       "OS": "linux" 
      }, 
      "Resources": { 
       "NanoCPUs": 10000000000, 
       "MemoryBytes": 67548012544 
      }, 
      "Engine": { 
       "EngineVersion": "1.12.1", 
       "Plugins": [ 
        { 
         "Type": "Network", 
         "Name": "bridge" 
        }, 
        { 
         "Type": "Network", 
         "Name": "host" 
        }, 
        { 
         "Type": "Network", 
         "Name": "null" 
        }, 
        { 
         "Type": "Network", 
         "Name": "overlay" 
        }, 
        { 
         "Type": "Volume", 
         "Name": "local" 
        } 
       ] 
      } 
     }, 
     "Status": { 
      "State": "ready" 
     }, 
     "ManagerStatus": { 
      "Leader": true, 
      "Reachability": "reachable", 
      "Addr": "192.168.0.118:2377" 
     } 
    } 
] 

내가 뭘 잘못하고 있니? 나는 정확하게 문서를 여기에 정확히 따라 갔다는 것을 확신한다 : https://docs.docker.com/engine/reference/commandline/node_ls/#/id

답변

1

간단한 대답 : 이것은 생각했던 것처럼 작동하지 않지만 해결할 수있는 것처럼 보입니다.

the Github issue에서 인용 :

를 혼란은 우리가 레이블이 설정되어 있다는 사실에서 온다 :

노드 레이블 엔진 라벨 (당신이 고정 표시기 노드 업데이트를 통해 설정했던 것들) ( --label을 사용하여 docker 데몬을 시작할 때 설정 한 것들) docker 노드 ls의 레이블 필터링은 노드 레이블이 아닌 엔진 레이블을보고 있습니다.

우리는 아마 오히려 엔진보다 노드 레이블 필터링에 복귀한다 필터링

관련 문제