在Jenkins任務的Post Steps中,使用「Send files or execute commands over SSH」,經過執行腳本的方式,中止docker container,刪除其image,並從新從Docker Hub中下載鏡像啓動。執行腳本的過程當中遇到了sudo相關的權限問題,在此作個記錄。docker
其中virual1是一臺Ubuntu系統,使用登陸用戶xym鏈接。/usr/local/erp/jenkins.sh的內容以下:bash
#!/bin/sh docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) echo "stop docker started process" docker rmi $(docker images | grep 'haha' | awk '{print $3}') docker run -d -p 8084:8081 mozaiquan/zkong:haha
因爲virual機器上安裝的docker版本較低(Docker version 1.6.2, build 7c8fca2)docker指令比較原始,其中:ui
爲了使xym能夠不用sudo執行docker,須要對權限作一些配置。.net
Linux的用戶能夠分爲管理員用戶(root uid:0), 系統用戶(uid:1~999),登陸用戶(uid:1000+)參考code
查看全部用戶:blog
cat /etc/passwd
查看全部組:get
cat /etc/group
將xym添加到docker,root組中(可能不是必要條件):jenkins
usermod -a -G docker xym usermod -a -G root xym
將xym設置爲免密操做(關鍵操做):io
編輯/etc/sudoers, 添加class
xym ALL=(ALL) NOPASSWD:ALL
這樣就能以xym的登陸用戶身份直接操做docker指令,而不須要輸入密碼!
關於sudo: sudo命令用來以其餘身份執行命令,預設爲root,使用sudo必須先輸入密碼,有五分鐘有效期,超期必須重輸。