Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何运行docker:dind从shell开始_Docker_Dockerfile - Fatal编程技术网

如何运行docker:dind从shell开始

如何运行docker:dind从shell开始,docker,dockerfile,Docker,Dockerfile,我想运行docker:dind并获得一个shell。 如果我运行docker run--privileged docker:dind sh它就会退出。 解决方法是运行:docker run-d——特权docker:dind 它在后台启动,然后我可以运行docker exec-it sh并获得一个shell 但我希望它从一个外壳开始。 我创建了一个Dockerfile: FROM docker:dind ENTRYPOINT sh 我建造了它: docker build-tdind2-f D

我想运行
docker:dind
并获得一个shell。
如果我运行
docker run--privileged docker:dind sh
它就会退出。
解决方法是运行:
docker run-d——特权docker:dind

它在后台启动,然后我可以运行
docker exec-it sh
并获得一个shell

但我希望它从一个外壳开始。
我创建了一个Dockerfile:

FROM docker:dind
ENTRYPOINT sh  
我建造了它:
docker build-tdind2-f Dockerfile.

当我运行
docker run--rm-it--privileged dind2时,我得到了一个shell,但当我尝试运行simple container
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运行interactive并使用tty才能使用shell

docker run --interactive --tty docker:dind sh
或者,简而言之

docker run -it docker:dind sh

正如安德烈亚斯·韦德布兰德所说。你可以

docker run -it docker:dind sh
如果你想使用Dockerfile。就这样写吧

FROM docker:dind
CMD ["sh"]

它不应该覆盖入口点。您可以尝试检查
docker:dind
image

docker inspect docker:dind
您可以看到entrypoint是一个shell脚本文件

"Entrypoint": [
  "dockerd-entrypoint.sh"
   ],
当然,我们可以在容器中找到这个文件。进码头

docker run -it docker:dind sh
然后

cat /usr/local/bin/dockerd-entrypoint.sh
有关entrypoint的更多信息,请参见