docker-compose在Alpine容器内

问题描述 投票:1回答:1

我试图将我的应用程序(代码,Dockerfiles和docker-compose脚本)捆绑在一个图像中以便于部署(入口点只是docker-compose up)。我的顶级应用程序图像的Dockerfile看起来像这样

FROM alpine:latest
COPY . /app
RUN apk update && apk add --no-cache docker py-pip openrc && pip install docker-compose

当我运行这个图像时,似乎dockerd还没有启动,缺少top的结果; docker ps报告“无法在unix:///var/run/docker.sock上连接到Docker守护程序。泊坞守护程序是否正在运行?”。但是,如果我做service docker start,则返回“*警告:docker已经开始”。为了让Docker在Alpine容器上工作,我需要做些什么特别的事情吗?

docker docker-compose alpine
1个回答
2
投票

Docker包含运行所有服务的docker守护进程和用于与守护进程交互的CLI(好的,还有很多其他部分,但这些是最重要的)。无论您从docker-compose命令获得什么消息,安装service都不会安装守护程序。

要在容器内使用docker,您必须使用docker-in-docker图像。它被称为docker:dind。继承它(而不是alpine)并享受。

但在阅读this article之前,这解释了为什么它不是一个好主意,以及在容器内使用docker的其他方法是什么(提示:你可以通过安装/var/run/docker.sock:/var/run/docker.sock套接字从容器内部调用主机的docker守护进程)。

© www.soinside.com 2019 - 2024. All rights reserved.