22년 2월에 작성한 글입니다.
docker node update \
--availability <active> \
NODE
active: 활성 상태pause: 더이상 태스크를 할당받지 않음drain: 더이상 태스크를 할당받지 않음 & 해당 노드에서 실행중인 노드 정지docker node update \
--label-add <label> \
NODE
docker node update \
--label-rm <label> \
NODE
docker node inspect --pretty NODE
docker service create --constraint '제약사항'
== 또는 != 사용하여 매치 조건 생성| 노드 attribute | 설명 | 예시 |
|---|---|---|
node.id | Node ID | node.id==2ivku8v2gvtg4 |
node.hostname | Node hostname | node.hostname!=node-2 |
node.role | Node role (manager/worker) | node.role==manager |
node.platform.os | Node operating system | node.platform.os==windows |
node.platform.arch | Node architecture | node.platform.arch==x86_64 |
node.labels | User-defined node labels | node.labels.security==high |
engine.labels | Docker Engine’s labels 도커 데몬 실행 옵션 변경 필요 | engine.labels.operatingsystem==ubuntu-14.04 |
centos 라벨을 생성한뒤 아래처럼 서비스 생성시, 5개 태스크가 전부 해당 노드에 설정된것을 확인할수 있음docker service create --name label_test \
--constraint 'node.labels.os == centos' \
--replicas=5 \
ubuntu:14.04 \
ping docker.com