2016-01-15 197 views
0

我有一臺安裝了docker-machine的測試Ubuntu服務器。我有一些Docker容器在服務器上運行。包括一個詹金斯容器。我使用以下命令運行jenkins從命令提示符運行docker命令與jenkins腳本

docker run -d --name jenkins -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker --restart=always -p 8080:8080 -v ~/jenkinsHome:/var/jenkins_home docker-jenkins 

我正在通過Jenkins管理我的圖像。我可以通過Jenkins shell腳本啓動除我的一個容器之外的所有容器。一個容器出現故障似乎在腳本中開始(我在docker運行腳本後做了docker PS)。但是,腳本完成後容器停止。我使用的命令提示符下的工作方式相同泊塢窗運行命令,但在詹金斯腳本失敗:

sudo docker run -d --net=host -v ~/plex-config:/config -v ~/Media:/media -p 32400:32400 wernight/plex-media-server 

我有雙重檢查文件夾的權限,他們是正確的。任何人都可以指導我找出可能的原因,運行命令在Jenkins中失敗,但不是在命令提示符處?

+0

附註:當你也使用'--net = host'時,使用'-p 32400:32400'沒有意義。當使用'--net = host'時,在容器上打開的所有端口都將在docker主機上打開 – Thomasleveil

+0

您是否可以在jenkins中啓動無法啓動的容器時共享「docker logs」的輸出? – Thomasleveil

+0

什麼是使用帳戶碼頭奴隸運行?它有sudo權限是否正確?任何其他環境參數不同? – Jayan

回答

0

使用docker ps =a我能夠得到一個停止的容器的ID。然後通過使用docker logs我能夠看到錯誤是文件夾權限問題。然後深入挖掘,這是Jenkins運行的用戶權限錯誤不匹配,因爲它的容器內部無法正確傳遞文件夾。我決定通過使用docker stop和start命令而不是使用docker run命令來繞過這個問題。

相關問題