Subit Das
Subit Das

Reputation: 559

How can I install Docker inside an alpine container?

How can I install Docker inside an alpine container and run docker images? I could install, but could not start docker and while running get "docker command not found error".

Upvotes: 33

Views: 72176

Answers (2)

sai anudeep
sai anudeep

Reputation: 1265

Dockerfile for running docker-cli inside alpine

FROM alpine:3.10
RUN apk add --update docker openrc
RUN rc-update add docker boot

Build docker image

docker build -t docker-alpine .

Run container (host and the alipne container will share the same docker engine)

docker run -it -v "/var/run/docker.sock:/var/run/docker.sock:rw" docker-alpine:latest /bin/sh

Upvotes: 55

Eugene Khyst
Eugene Khyst

Reputation: 10325

All you need is to install Docker CLI in an image based on Alpine and run the container mounting docker.sock. It allows running sibling Docker containers using host's Docker Engine. It is known as Docker-out-of-Docker and is considered a good alternative to running a separate Docker Engine inside a container (aka Docker-in-Docker).

Dockerfile

FROM alpine:3.11

RUN apk update && apk add --no-cache docker-cli

Build the image:

docker build -t alpine-docker .

Run the container mounting the docker.sock (-v /var/run/docker.sock:/var/run/docker.sock):

docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock alpine-docker docker ps

The command above should successfully run docker ps inside the Alpine-based container.

Upvotes: 39

Related Questions