如何在 alpine 容器中安装 Docker?

Sub*_*Das 18 docker alpine-linux

如何在alpine容器中安装 Docker并运行 docker 镜像?我可以安装,但无法启动 docker 并且在运行时获取“docker command not found error”。

sai*_*eep 25

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

FROM alpine:3.10
RUN apk add --update docker openrc
RUN rc-update add docker boot
Run Code Online (Sandbox Code Playgroud)

构建泊坞窗图像

docker build -t docker-alpine .
Run Code Online (Sandbox Code Playgroud)

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

docker run -it -v "/var/run/docker.sock:/var/run/docker.sock:rw" docker-alpine:latest /bin/sh
Run Code Online (Sandbox Code Playgroud)


Evg*_*yst 17

您只需要在基于 Alpine 的镜像中安装 Docker CLI 并运行容器安装docker.sock。它允许使用主机的 Docker 引擎运行同级 Docker 容器。它被称为 Docker-out-of-Docker,被认为是在容器内运行单独的 Docker 引擎(又名 Docker-in-Docker)的一个很好的替代方案。

文件

FROM alpine:3.11

RUN apk update && apk add --no-cache docker-cli
Run Code Online (Sandbox Code Playgroud)

构建图像:

docker build -t alpine-docker .
Run Code Online (Sandbox Code Playgroud)

运行安装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
Run Code Online (Sandbox Code Playgroud)

上面的命令应该可以docker ps在基于 Alpine 的容器内成功运行。