Docker在docker上的主机运行脚本 – 组成

感谢您收看这个问题。

所以我的问题涉及如何在docker-up命令上运行脚本的最佳实践。

目前,我在主机和容器之间共享一个卷,以允许脚本更改对主机和容器都可见。 类似于观察脚本轮询configuration文件的更改。

脚本必须根据预定义的规则在主机上进行更改。

所以我的问题是:

我怎么能在docker上创build这个脚本 – 组成up指令,甚至是从服务的dockerfile开始,这样,只要容器上去了,“观察者”就可以find正在写入和写入的任何变化。

有问题的容器将永远运行在debian / ubuntu操作系统上,并且应该独立于架构,这意味着它也应该能够在ARM上运行。

提前致谢

我也想知道,为什么这个问题只是因为有些人不明白而被低估了。

我希望在主机上运行脚本,而不是在容器内部运行。我需要主机更改其networking接口configuration,以便轻松适应任何环境。主机需要更改我重复一次。这应该对用户是无缝的,并且很容易在运行的Web界面上编辑,以适应新的环境。

我目前正在基于crontab的主机上运行脚本。 我只想知道如何在INSIDE CONTAINER上运行HOST脚本的最佳实践和示例,这样安装操作员就可以轻松地运行docker-compose。

谢谢

我只是想知道如何从INSIDE CONTAINER运行HOST上的脚本的最佳实践和示例,以便部署可以像安装运营商一样简单地运行docker-compose

似乎没有可以应用于您的案例的最佳做法。 这里提出了一个解决方法: 如何在Docker容器上的主机上运行shell脚本? 是使用client/server技巧。

  1. 主机应运行一个小型服务器(select一个端口并指定一个您应该等待的请求types)
  2. 容器启动后,应该将这个请求发送到该服务器
  3. 主机应该运行脚本/触发你想要的更改

这是可能有严重的安全问题,所以使用风险自负。

该脚本需要在前台连续运行。

在您的Dockerfile中,使用CMD指令并将脚本定义为参数。

在使用cli时,使用docker run -d IMAGE SCRIPT

你可以创build一个docker-compose up的别名docker-compose up 。 在~/.bash_aliases (Ubuntu)中放入这样的东西:

 alias up="docker-compose up; ~/your_script.sh" 

我不确定是否可以在主机上运行脚本,但如果可能的话,这是一个严重的安全漏洞。 容器应该被隔离,这就是使用容器的要点。