docker - 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 以使其工作吗?那么这不违背码头工人自己所说的吗?
还有许多其他博客文章提供了相同的建议,但我的示例确实有效。我哪里错了?
解决方案
将 dockerfile 中的图像替换为包含ubuntu:latest
docker 二进制文件的官方docker:latest
图像,并且完全符合您的要求:https ://hub.docker.com/_/docker
如果要保留 Ubuntu 映像,则必须在出现错误后安装 Docker 工具。默认情况下,Ubuntu 映像不包含 Docker 二进制文件作为常规 Ubuntu 安装。
推荐阅读
- react-native - 屏蔽字体容器而不在 react-native 中包装文本
- reactjs - 如何清除 ReactJS datepicker 的值
- node.js - 通过角度前端下载在nodejs中使用pdfkit库创建的PDF
- oracle - 将数据帧写入 oracle 时列标识符无效
- jquery - 从数组jquery单击设置多个图像
- iis - HTTP 错误 502.5 - .net core 3.0 中的进程失败
- kubernetes - 在 Kubernetes 中运行 pod 和容器
- visual-studio - vs 2019 在打开解决方案时崩溃而没有任何错误报告
- loopbackjs - 环回 API 资源管理器中的 {nk} 是什么?
- python - 烧瓶 Heroku 正确的 Procfile