如果我有一个应用程序在 docker 容器中运行,是否可以让它在主机上执行 shell 脚本?我很确定没有办法实现这一点 - 故意的,这就是容器的本质 - 但想检查一下。谢谢。
编辑:如果失败了,有没有办法让应用程序与主机上运行的 docker 引擎交互,以便它可以触发其他容器的“docker stop”“docker run..”等。
最佳答案
嗯,从技术上来说,确实如此。即使是在容器内部,进程也会在主机上运行。您可以在主机上以 root 身份运行 ps aux
时验证这一点:您将看到 Docker 化的进程。
问题是:您的脚本应该与系统进行什么交互?如果它将文件作为输入、访问数据库或网络资源,那么所有这些对于 Docker 化脚本来说都是可能的。您只需定义卷和链接。
关于 docker 引擎:是的,容器也可以控制自己的 docker 引擎。您只需将其添加到 docker 命令中即可:
-v /var/run/docker.sock:/var/run/docker.sock
这样,docker 客户端(容器内)将可以访问 docker 引擎(通过 docker API)。
关于docker - dockerized应用程序可以在主机上执行脚本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40399235/