Jenkins inside docker loses configuration when container is restarted

I have followed the next guide to download the docker image with Jenkins.

When I start my container using docker start CONTAINERNAME command, I can access to Jenkins from localhost:8080.

  • Javac compiler not recognizing wildcard?
  • Mac Docker Machine ZSH shell set env variable not applying
  • Redis connection failing
  • How to monitor multiple docker container on the same host using topbeat?
  • Running Couchbase under GCE Docker and getting error about max number of files
  • Start docker container from another application in another docker container
  • The problem comes up when I change Jenkins configuration and restart Jenkins using docker stop CONTAINERNAME and docker start CONTAINERNAME, my Jenkins doesn’t contain any of my previous configuration changes..

    How can I persist the Jenkins configuration?

  • Docker: Combine multiple images
  • Docker on AWS. ECS or Docker Datacenter
  • cron job not running inside docker container on ubuntu
  • UDP response issues
  • Docker error : no space left on device
  • docker base image with solaris operating system
  • One Solution collect form web for “Jenkins inside docker loses configuration when container is restarted”

    You need to mount the Jenkins configuration as a volume, the -v flag will do just that for you. (you can ignore the --privileged flag in my example unless you plan on building docker images inside your jenkins docker image)

    docker run --privileged --name='jenkins' -d -p 6999:8080 -p 50000:50000 -v /home/jan/jenkins:/var/jenkins_home jenkins:latest

    The -v flag will mount your /var/jenkins_home outside your container in /home/jan/jenkins maintaining it between rebuilds.

    --name so that you have a fixed name for the container to start / stop it from.

    Then next time you want to run it, simply call

    docker start jenkins
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.