系統版本: Ubuntu 18.01 私服: Harbor Docker版本: Docker version 18.09.5
首先需要明確的是,即在harbor里項目設置為公開,但是在push的時候還是需要用戶驗證的,即需要使用docker登錄
docker login harbor.zyg.com(私服的地址),輸入用戶名和密碼后即會在當前用戶的/home/用戶名/.docker/下生成一個config.json文件
但這只是當前用戶能夠使用的,每一次在使用docker pull/push時都會使用這個文件
問題一、 避免一般用戶在使用docker的時候使用sudo
1、創建docker用戶組,一般在安裝的時候會自動創建 2、添加用戶到docker組sudo usermod -aG docker $USER
問題二、 Jenkins執行shell腳本里的docker命令報權限不足
因為在執行shell系統使用的是jenkins偽用戶,所以這時需要將jenkins加入docker用戶組 sudo gpasswd -a jenkins docker sudo service jenkins restart (一定要重啟)
問題三、 Jenkins推送鏡像報錯denied: requested access to the resource is denied
The push refers to repository [harbor.zyg.com/microservices/zhaiugo-id-service] ead29f23f10c: Preparing c1d68427d6dd: Preparing c03339557420: Preparing b8fded14819b: Preparing 10975dc549b8: Preparing 1e11e2a062fc: Preparing a8eed0ba0657: Preparing 1e11e2a062fc: Waiting a8eed0ba0657: Waiting denied: requested access to the resource is denied [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // withEnv [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline ERROR: script returned exit code 1 Finished: FAILURE 還是因為jenkins在推送鏡像的時候使用的是jenkins的偽用戶,那么既然要推送就要登錄,將之前生成的config.json拷貝到jenkins的目錄下即可 1、使用root登錄后 2、將/home/用戶名/.docker/目錄拷貝到/var/lib/jenkins下 3、修改文件夾權限 chown -R jenkins.jenkins .docker