docker - 如何运行 docker :dind to start with a shell

标签 docker dockerfile

我想运行 docker:dind 并获得一个 shell。
如果我运行 docker run --privileged docker:dind sh 它只是退出。
解决方法是运行:docker run -d --privileged docker:dind它在后台启动,然后我可以运行 docker exec -it <container> sh 并获得一个 shell。

但我希望它以一个 shell 开头。
我创建了一个 Dockerfile:

FROM docker:dind
ENTRYPOINT sh  

我 build 了它:docker build -t dind2 -f Dockerfile .
当我运行 docker run --rm -it --privileged dind2 时,我得到了一个 shell,但是当我尝试运行简单的容器 docker run busybox echo hi 时,它​​失败了:
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.  

任何想法如何使 docker:dind 以 shell 开头,而无需在后台运行它然后使用 exec 获取 shell 的解决方法。

最佳答案

您需要告诉 docker 运行 交互式 并使用 tty 才能使用 shell。

docker run --interactive --tty docker:dind sh

或者,简称
docker run -it docker:dind sh

关于docker - 如何运行 docker :dind to start with a shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54144630/

相关文章:

java - 无法连接到在 docker 容器内运行的嵌入式 undertow 服务器

scala - Intellij CE 2018.2 + docker 容器中的 SBT : Remote debug breakpoints not working

mongodb - 在 docker 中运行 mongo DB 命令时连接被拒绝

Windows 上的 Dockerfile 复制超时问题

node.js - 移动 docker-compose.yml 文件时,Nginx 镜像的 docker-compose 不起作用

docker - 如何在 Dockerfile 中标记图像?

docker - 如何在Docker中的Jessie上安装RabbitMQ-server?

tomcat - 如何使用 JMX 从主机连接到 Docker 机器中的 Docker 容器?

apache - 如何在 docker 容器中的正确位置安装 apache 模块

docker - 如何使用 docker-compose 在 docker 上安装 gulp