【发布时间】:2016-01-15 23:41:02
【问题描述】:
我有一个安装了 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 run in script 之后做了一个 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 中失败的可能原因,但不是在命令提示符下?
【问题讨论】:
-
附带说明:当您还使用
--net=host时,使用-p 32400:32400毫无意义。使用--net=host时,容器上打开的所有端口都会在docker主机上打开 -
你能分享一下
docker logs在 jenkins 中启动失败的容器的输出吗? -
docker slave运行的使用账号是什么?它是否具有正确的 sudo 权限?其他环境参数有什么不同吗?
-
@Thomasleveil 我如何获得这些日志?容器在我可以执行之前停止?并感谢有关端口的说明。我只是按照图像开发者提供的说明进行操作。
-
docker ps -a列出所有容器,包括停止的容器。然后docker logs <id of stopped container>