我有一个Dockerfile,其中使用了经典的Ubuntu基础镜像,我试图减少其大小。因此我正在使用Alpine基础镜像。
在我的Dockerfile中,我必须安装Docker,这就是为什么需要进行Docker内部安装。
FROM alpine:3.9
RUN apk add --update --no-cache docker
这很好用,我可以在容器内运行docker version
,至少对于客户端而言是这样的。因为对于服务器端,我遇到了经典的Docker错误,如下所示:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
我知道在安装完Docker后,在Ubuntu系统中需要运行以下命令:
usermod -a -G docker $USER
那么在Alpine中怎么办?我该如何避免这个错误?
PS:
我的第一个想法是通过绑定挂载/var/run/docker.sock:/var/run/docker.sock
来重复使用Docker套接字,从而进一步减小镜像的大小,因为我不必重新安装Docker。
但由于Dockerfile不允许绑定挂载,您知道我是否可以实现并如何实现吗?我知道在Docker-compose中可以实现,但我必须仅使用Dockerfile。
谢谢
--privileged
容器,这也无法在Dockerfile中指定。如果你有一个可用的基于Ubuntu的设置,我可能会坚持使用它。 - David Maze