ChipNugget
ChipNugget

Reputation: 393

How to access /var/jenkins_home in docker?

I'm transitioning my current Jenkins server to implement Docker. Following the guide on github https://github.com/jenkinsci/docker, I was able to successfully launch jenkins with the command:

docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

I'm not sure how to view/access the data in my container/volume through file explorer. Is it only accessible through docker inspect? The guide in GitHub says I should avoid using a bind mount from a folder on the host machine into /var/jenkins/home. Is there another way to view and access my jenkins jobs?

Upvotes: 5

Views: 5963

Answers (2)

Jaipal Solanki
Jaipal Solanki

Reputation: 11

If you want see the data on a local host file system you can use bind mounts instead of volume, it will sync all the data from the jenkins_home folder to your local host file system. For example: docker run -p 8080:8080 \ --name jenkins \ --mount type=bind,source="$(pwd)"/jenkins_home,target=/var/jenkins_home \ jenkins/jenkins for more clarification on bind mounts and volumes please follow this link. https://docs.docker.com/storage/bind-mounts/

Upvotes: 1

Mihai
Mihai

Reputation: 10767

As you can see in the Jenkins CI Dockerfile source code
/var/jenkins_home is declared as a VOLUME.
It means that it can be mounted on the host.
enter image description here

Your command mounts a docker volume to it but you could also mount a path on your host.
For example:

docker run -p 8080:8080 -p 50000:50000 -v ~/jenkins_home:/var/jenkins_home jenkins/jenkins:lts

On Windows hosts, you might have to create the directory first.

You can change ~/jenkins_home to whatever suites your host environment but that is a folder that you can easily navigate and inspect.

You can also still use the web interface available on the porta that you map on the host.

Upvotes: 5

Related Questions