首页 > 解决方案 > docker in docker via bind mound - ubuntu

问题描述

我需要一个 ubuntu 映像,然后使用该映像运行构建过程。一切都很好,直到构建完成docker build等等。

可以说我使用以下内容来测试:

Dockerfile

FROM ubuntu:latest

然后我构建它 -docker build -t ubuntudkr . 接下来,我像这样运行它:

docker run -ti -v /var/run/docker.sock:/var/run/docker.sock ubuntudkr

然后当我docker ps在这个容器中运行时,我得到了错误bash: docker: command not found

我发现的所有示例都说我需要运行:

docker run -v /var/run/docker.sock:/var/run/docker.sock \
           -ti docker

他们都使用包含 docker 库的 docker 镜像。那么我的答案是在我的基础映像中安装 docker 以使其工作吗?那么这不违背码头工人自己所说的吗?

还有许多其他博客文章提供了相同的建议,但我的示例确实有效。我哪里错了?

标签: dockerdocker-in-docker

解决方案


将 dockerfile 中的图像替换为包含ubuntu:latestdocker 二进制文件的官方docker:latest图像,并且完全符合您的要求:https ://hub.docker.com/_/docker

如果要保留 Ubuntu 映像,则必须在出现错误后安装 Docker 工具。默认情况下,Ubuntu 映像不包含 Docker 二进制文件作为常规 Ubuntu 安装。


推荐阅读