How to Run jenkins on docker

On my very first time, I was getting issue on running jenkins on docker which is running on windows 7.

I followed below procedure to solve the issue

  1. To know if jenkin (all) is pulled from docker hub or not:
    $ docker ps
  2. To know about your docker information
    $ docker info
  3. Know the ip address of your docker
    $ docker-machine ip default
  4. Pull jenkins from docker hum
    $ docker pull jenkins
  5. Run jenkins on 8080 port
    $ docker run -p 8080:8080 --name=jenkins-master jenkins
    Copy the password for jenkins(it is required when you would hit the browser)
  6. Then open browser, put the address as below to access jenkins
    ip Address of your jenkins(when you called $ docker-machine ip default):8080
  7. Now it would ask you the password which mentioned on point 5.
  8. Now configure plugins as per your requirement.

These are the lines to follow when you are setting jenkins on “Docker”

This is fine but not sufficient if your jenkins pipeline has docker build or run commands in it. In that case the dockerized jenkins instance needs to talk to a docker daemon.

The typical solution is to mount /var/run/docker.sock into the jenkins container, such that jenkins inside the container will talk to the docker daemon on the host, but this comes with other challenges as described in this blog.

The blog also describes a clean solution to the problem, by placing jenkins + docker cli + docker daemon inside the container. This avoids headaches by placing jenkins in the same context as the docker daemon (i.e., both are inside a container, rather than one inside the container and the other on the host).

I recently founded Nestybox, which enables this solution without using Docker privileged containers. It has already helped others in this forum.

Hope this helps!