【发布时间】:2021-10-09 01:02:06
【问题描述】:
我需要一个 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 以使其工作吗?那么这不违背docker themselves says 吗?
有many other 的博客文章提供了相同的建议,但我的示例确实有效。我哪里错了?
【问题讨论】:
-
一般来说,一个Docker镜像应该是自包含的;如果您的应用程序需要
docker二进制文件,那么您的 Dockerfile 需要以某种形式安装它。 (但也请记住,能够访问 Docker 套接字意味着您可以轻松地 root 整个主机;您是否需要从容器内启动更多容器,或者您可以使用更安全的方法吗?) -
其他容器不会启动,不会。这是一个 CI 构建环境,所以只需要运行 docker build 和 docker run publish 命令就会运行。