从命令提示符与jenkins脚本运行docker命令

时间:2016-01-15 23:41:02

标签: jenkins docker

我有一个安装了docker-machine的测试Ubuntu服务器。我在服务器上运行了许多docker容器。包括Jenkins容器。我使用以下命令运行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 PS)。但是,容器在脚本完成后停止。我正在使用与命令提示符相同的docker run命令,但它在Jenkins脚本中失败:

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

我有双重检查文件夹权限,它们是正确的。任何人都可以指出我在Jenkins中运行命令失败的可能原因,但不是在命令提示符下吗?

1 个答案:

答案 0 :(得分:0)

使用docker ps =a我能够获取已停止容器的ID。然后使用docker logs我能够看到错误是文件夹权限问题。然后深入挖掘,用户权限错误错误匹配用户Jenkins运行内部的容器无法正确传递文件夹。我决定通过使用docker stop和start命令而不使用docker run命令来解决问题。