如何在 alpine 容器中安装 Docker?

How can I install Docker inside an alpine container?

如何在 alpine 容器和 运行 docker 图像中安装 Docker ? 我可以安装,但无法启动 docker 并且 运行ning 得到 "docker command not found error".

用于 运行 docker-alpine 中的 cli 的 Dockerfile

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

构建docker图像

docker build -t docker-alpine .

运行 容器(主机和 alipne 容器将共享相同的 docker 引擎

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

您只需要在基于 Alpine 的映像中安装 Docker CLI 和 运行 容器安装 docker.sock。它允许 运行ning 兄弟 Docker 容器使用主机的 Docker 引擎。它被称为 Docker-out-of-Docker 并且被认为是 运行 在容器中安装一个单独的 Docker 引擎(又名 Docker -在-Docker).

Docker文件

FROM alpine:3.11

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

构建图像:

docker build -t alpine-docker .

运行 容器安装 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

上面的命令应该在基于 Alpine 的容器中成功 运行 docker ps