Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在alpine容器中安装Docker?_Docker_Alpine - Fatal编程技术网

如何在alpine容器中安装Docker?

如何在alpine容器中安装Docker?,docker,alpine,Docker,Alpine,如何在alpine容器中安装Docker并运行Docker映像? 我可以安装,但无法启动docker,并且在运行get“docker command not found error”时出现错误。docker文件用于在alpine中运行docker cli FROM alpine:3.10 RUN apk add --update docker openrc RUN rc-update add docker boot 建立码头工人形象 docker build -t docker-alpine

如何在alpine容器中安装Docker并运行Docker映像?
我可以安装,但无法启动docker,并且在运行get“docker command not found error”时出现错误。

docker文件用于在alpine中运行docker cli

FROM alpine:3.10
RUN apk add --update docker openrc
RUN rc-update add docker boot
建立码头工人形象

docker build -t docker-alpine .
运行容器(主机和alipne容器将共享同一docker引擎)


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

Dockerfile

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 ps

它的可能副本几乎被普遍禁止,技术上很复杂,但理论上是可能的。最好的选择是使用更高级别的编排器(如Docker Compose),而不让容器尝试启动其他容器。如果您可以允许您的容器在主机上具有不受限制的根访问权限,那么您也可以让它们访问主机的Docker套接字。是否有任何方法可以将卷装入部分移动到Dockerfile。所以,只要我启动了一个交互式终端会话,docker就可以正常工作了???@mygitrepo-您可以使用docker compose来做类似的事情。您可以在那里定义挂载,然后只需使用
docker compose运行--rm alpine docker svc
docker compose文件的样子(抱歉,SO注释中没有换行):`version:'3'服务:alpine docker svc:build:。卷:-/var/run/docker.sock:/var/run/docker.sock`是否有任何方法可以将卷装载部分移动到Dockerfile。所以只要我启动一个交互式终端会话docker就可以正常工作了???@mygitrepo不,绑定挂载是运行时选项。您唯一的机会是在docker守护进程上启用TCP(或创建unix套接字的反向代理),并使用
-H
标志(您可以使用
入口点设置该标志)
docker build -t alpine-docker .
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock alpine-docker docker ps