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