运行 docker 容器外的脚本

Running script outside of docker container

我正在尝试进行自动部署,所以...

我有一个 .sh 脚本可以自动拉取 docker 个图像,例如:

docker pull mongo
docker stop db
docker rm db
docker run --name db -d mongo

我正在等待 POST 启动它的请求。

所以我有一个容器(带有nginx)作为服务器。但是我必须在容器外调用那个脚本,因为它可以更新任何容器。

这可能吗?如果可以,怎么做?

我觉得您正在寻找 Docker UNIX 套接字。查看一些解释 here(最好向下滚动到该页面的 'The Solution' 部分。 基本上,您将使用已安装的 UNIX 套接字启动 Nginx 容器。这允许您在 Nginx 容器 内部 其他同级容器上使用 docker 命令。

重要安全说明:

使用 UNIX 套接字无疑是一个安全问题,尤其是当您将其暴露在万维网上时。参见 [1] and [2]. Other alternatives might include using Docker-in-Docker, though I am not certain that's suitable for your case right here. Docker did publish a blogpost on how to secure the UNIX socket here,如果那是你想要走的路。