我想跑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
Run Code Online (Sandbox Code Playgroud)
我建造了它:
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?.
Run Code Online (Sandbox Code Playgroud)
知道如何 makedocker:dind从 shell 开始,而不需要在后台运行它然后使用它exec来获取 shell 的解决方法。
您需要告诉 docker 以交互方式运行并使用tty才能使用 shell。
docker run --interactive --tty docker:dind sh
Run Code Online (Sandbox Code Playgroud)
或者,简称
docker run -it docker:dind sh
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7232 次 |
| 最近记录: |