詹金斯与码头工人

时间:2014-02-13 13:01:50

标签: jenkins docker

我的问题是:

docker run -d -p 8080:8080 asd/jenkins # everything's ok
# made changes at jenkins
docker commit container_with_jenkins   # comitted
docker run -d -p 8080:8080 image_from_container_with_changes 
# => Error: create: No command specified

我错过了什么吗? 如何使用docker的图像并在容器中保存更改?

1 个答案:

答案 0 :(得分:2)

提交图像时,它不会从其父图像继承CMD。因此,当您基于新映像启动容器时,需要提供运行命令。

docker run -d image_from_container_with_changes java -jar /var/lib/jenkins/jenkins.war

其中run命令当然取决于您的具体安装。

Jenkins将其配置存储在目录中,例如/root/.jenkins。我建议的是在主机上创建一个目录并将其作为卷链接:

docker run -v {absolute_path_to_jenkins_dir}:/root/.jenkins -d asd/jenkins

如果以相同的方式启动新容器,它将具有相同的作业等。如果您进行了更改,进入此目录(我不知道安装了插件或更新的头部),您仍然可能想制作一个新的形象。在这种情况下,在提交容器以指定新配置时使用-run选项,

docker commit -run='{"Cmd": ["java", "-jar", "/var/lib/jenkins/jenkins.war"]}' abc1234d