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的图像并保存容器内的变化?
当您提交图像时,它不会从其父图像inheritanceCMD。 所以当你启动一个基于新镜像的容器时,你需要提供一个运行命令。
docker run -d image_from_container_with_changes java -jar /var/lib/jenkins/jenkins.war
运行命令当然取决于你的具体安装。
Jenkins将它的configuration存储在一个目录中,例如/root/.jenkins。 我build议的是在主机上创build一个目录并将其作为一个卷连接:
docker run -v {absolute_path_to_jenkins_dir}:/root/.jenkins -d asd/jenkins
如果你用同样的方式启动一个新的容器,它将会有相同的工作等等。如果你做了一些更改,进入这个目录(我不知道哪个插件或更新安装在哪里),你仍然可能想要做一个新的形象。 在这种情况下,当您提交容器指定新的configuration时,请使用-run
选项,
docker commit -run='{"Cmd": ["java", "-jar", "/var/lib/jenkins/jenkins.war"]}' abc1234d