Ubuntu 在Docker运行Jenkins-立即退出
我想用docker运行Jenkins服务器 我已构建映像,并尝试使用以下命令运行它:Ubuntu 在Docker运行Jenkins-立即退出,ubuntu,jenkins,docker,dockerfile,Ubuntu,Jenkins,Docker,Dockerfile,我想用docker运行Jenkins服务器 我已构建映像,并尝试使用以下命令运行它: docker run -p 8080:8080 62a4e44bf4bf docker run -i -t -p 8080:8080 62a4e44bf4bf 62a4e44bf4bf是docker映像ID 每当我运行此命令时,它都会立即关闭 我已尝试使用此命令: docker run -p 8080:8080 62a4e44bf4bf docker run -i -t -p 8080:8080 62a4
docker run -p 8080:8080 62a4e44bf4bf
docker run -i -t -p 8080:8080 62a4e44bf4bf
62a4e44bf4bf是docker映像ID
每当我运行此命令时,它都会立即关闭
我已尝试使用此命令:
docker run -p 8080:8080 62a4e44bf4bf
docker run -i -t -p 8080:8080 62a4e44bf4bf
这将使图像保持运行,但我似乎无法使用此ip:localhost:8080从浏览器访问jenkins
DOCKERFILE:
@Detilium您的
Dockerfile
中没有CMD或ENTRYPOINT,这就是它自动退出的原因,因为您的容器没有要运行的内容。根据您自己的回答,我猜您可能是通过使用exec
或运行bash并手动启动它来实现的
但是,您的Dockerfile有问题。Docker容器必须以pid 1
(容器内部)的形式运行进程,并且必须在前台运行(无后台程序)
更重要的是,图像重新呈现文件系统,而不是状态。如果在映像构建的某个步骤中(在Dockerfile
中)启动进程,则它正在运行的事实将不会被/持久化/,因此在基于此映像运行容器时不会再次启动。docker在启动容器时运行的默认命令定义为CMD
RUN service jenkins start
上面这行不行。它将在构建的这一步启动jenkins并创建一个层(甚至可能是空的)。但是将要创建的下一层(另一个步骤或实际的docker运行
)将不会运行jenkins服务/进程
对于JenkinsDockerfile
,您可以查看。注意入口点[“java”、“-jar”、“/opt/jenkins.war”]
也可以是
CMD[“java”、“-jar”、“/opt/jenkins.war”]
我鼓励您阅读以下文档,以进一步了解docker:,和。当jenkins容器无法继续运行时,您的jenkins目录上的权限可能会出现问题。我做了“docker pull jenkins”,惊讶地发现它无法运行 要调试错误,请使用-i(交互式标志)启动映像。(如果您不知道自己的身份证,请使用“docker ps-a | grep jenkins”) 我看到这样一个错误:
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
所以我检查了/var/jenkins_房屋所有权和许可。
我看到$PWD/jenkins目录是使用root:root 700权限创建的。我调整(大锤法):“sudo chmod 777$PWD/jenkins”。问题解决了。容器运行正常,并将jenkins安装到该目录中
我像这样运行jenkins容器:(PWD=/home/myuser so/var/jenkins_容器中的home实际上是docker服务器上的$PWD/jenkins)
这是一个旧线程,但在我的例子中,是内存不足导致了关机。我在mac上的docker桌面上运行docker。为Docker Desktop分配更多内存解决了这个问题。也许这可以帮助某人。
sudo chmod 777$PWD/jenkins
sudo docker run-d-p 8080:8080-v$PWD/jenkins:/var/jenkins_home:z-t jenkins/jenkins
docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home:z -t jenkins