星期四, 10月 13, 2016

Docker Swarm 移除小記

OS: openSUSE Leap 42.1


之前的測試環境用的是測試版本的 repo, 目前官方已經到 1.12.1 所以就想進行重新安裝
重新安裝前, 先記下移除 swarm mode 相關程序


Docker 版本
# docker --version
Docker version 1.13.0-dev, build dcdf2b4


使用的來源
# zypper   repos  -E
#  | Alias                                  | Name                                                                            | Enabled | GPG Check | Refresh
---+----------------------------------------+---------------------------------------------------------------------------------+---------+-----------+--------
1 | Virtualization_containers_experimental | Docker Experimental Packages (openSUSE_Leap_42.1)                               | Yes     | (r ) Yes  | Yes

目前的測試環境是 3 個 nodes
先使用 docker  node ls 來列出所有的 node


# docker   node  ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
71llz5z3q8f390s9l47qeypue    docker2   Ready   Active        
91ilfph3oq77e1jfwfzm1hm3g    docker3   Ready   Active        
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


因為要重新安裝, 所以就把上面的服務都移除了
# docker  service  ls
ID  NAME  REPLICAS  IMAGE  COMMAND

參考官方移除的程序


移除所有 work node
以我的環境來說, 我有兩個 work nodes, 一個 manager node


首先到 work node 上面進行 node 移除動作
使用 docker  swarm  leave 指令移除 node


# docker   swarm   leave
Node left the swarm.


回到 manager node 上面觀察
會發現 Availability 為 Down


# docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
71llz5z3q8f390s9l47qeypue    docker2   Ready   Active        
91ilfph3oq77e1jfwfzm1hm3g    docker3   Down    Active        
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


# docker   node  rm  docker3
docker3

觀察結果
# docker   node   ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
71llz5z3q8f390s9l47qeypue    docker2   Ready   Active        
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


在執行 docker  rm 的時候, node 必須狀態為 Down 才可以移除, 否則就會出現警告並不能執行


# docker   node  rm  docker2
Error response from daemon: rpc error: code = 9 desc = node 71llz5z3q8f390s9l47qeypue is not down and can't be removed


接下來到 所有的 work node 離開 swarm mode
並進行 docker  node  rm


回到 manager node
目前只剩下 manager node
# docker  node  ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


觀察目錄
# du  -sh   /var/lib/docker/swarm/raft/
123M /var/lib/docker/swarm/raft/


使用 docker swarm leave 指令離開, 因為是 manager node 所以會被提示使用 --force
# docker  swarm  leave
Error response from daemon: You are attempting to leave the swarm on a node that is participating as a manager. Removing the last manager erases all current state of the swarm. Use `--force` to ignore this message.

# docker  swarm  leave  --force
Node left the swarm.


再次觀察
# du  -sh  /var/lib/docker/swarm/
4.0K /var/lib/docker/swarm/


到這邊就可以了
接下來就是在各個 node 移除實驗的 repos, 以及移除 docker 套件重新安裝


# zypper   -n   remove    docker


# yast2   repositories


:)


先記下來


~ enjoy it


參考文件

沒有留言: