Skip to content

Instantly share code, notes, and snippets.

@nhthai2005
Last active July 16, 2021 15:28
Show Gist options
  • Save nhthai2005/9d5fbeaf6b6033a2164d74193ff56b35 to your computer and use it in GitHub Desktop.
Save nhthai2005/9d5fbeaf6b6033a2164d74193ff56b35 to your computer and use it in GitHub Desktop.
How to run docker in docker
#!/bin/bash
docker network create some-network
docker volume create some-docker-certs-ca
docker volume create some-docker-certs-client
docker run --privileged --name some-docker -d \
--network some-network --network-alias docker \
-e DOCKER_TLS_CERTDIR=/certs \
-v some-docker-certs-ca:/certs/ca \
-v some-docker-certs-clients:/certs/client \
docker:dind

Use option: -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker

$ docker run -t -i -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker busybox sh

Else, use docker:dind

docker run \
  --name jenkins-docker \
  --restart unless-stopped \
  --detach \
  --privileged \
  --network jenkins \
  --network-alias docker \
  -h docker \
  --env DOCKER_TLS_CERTDIR=/certs \
  --volume /myJenkins/jenkins-docker-certs:/certs/client \
  --volume /myJenkins/jenkins-data:/var/jenkins_home \
  --volume /myJenkins:/myJenkins \
  --publish 2376:2376 \
  docker:dind \
  --storage-driver overlay2

Note: if you get failed with the following messages, then change port --publish <Change_port_here>:2376

docker: Error response from daemon: driver failed programming external connectivity on endpoint jenkins-docker (0c2ab5e2c0da2cdb80a70c44ff566863378dddd022aa9170eff0ec4b95859e0c): Bind for 0.0.0.0:2376 failed: port is already allocated.
  • After that, you run your container. And you coud run docker in your container like docker ps
docker run \
--name jenkins-blueocean \
--restart unless-stopped \
--detach \
--network jenkins \
-h jenkins \
--env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client \
--env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 \
--publish 50000:50000 \
--volume /myJenkins/jenkins-data:/var/jenkins_home \
--volume /myJenkins/jenkins-docker-certs:/certs/client:ro \
--volume /myJenkins:/myJenkins \
myjenkins-blueocean:1.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment