DOCKER: docker 运行 后在容器中执行一次性命令
DOCKER: Executing one-time commands in container after docker run
我 运行 遇到了关于我的 Dockerfile 的问题 -- 我有一个包含 Web 应用程序的容器。当然,当我启动容器时,Web 应用程序也会启动,通过将 ENTRYPOINT 设置为 '/sbin/init',我可以容器 运行 永远(例如,它不只是启动和关闭)。
现在,问题是,我需要 进行一些 NFS 挂载 'after' 容器是第一次启动 。
我知道我可以删除 ENTRYPOINT 并利用 CMD 传入让我们说 CMD ./my_create_mount_script.sh
但是,我如何确保我的容器保持 运行 就像我使用 ENTRYPOINT /sbin/init 时一样?
例如,
如果我在 Dockerfile 中的倒数第二行是:
CMD ./my_create_mount_script.sh(脚本内部只是一些挂载语句)我的最后一行是:ENTRYPOINT /sbin/init据我所知,它对我没有任何好处,因为在这种情况下,ENTRYPOINT 期望 CMD 将参数传递给它,没有别的。
^ 如果重要,我会把这个容器部署到 AWS ECS
您可以传递多个 CMD 参数,例如:
CMD /sbin/init ; /do_something_else
或者您可以创建一个脚本来执行您想要的所有操作,包括启动网络应用程序,然后将其传递给您的 ENTRYPOINT
我 运行 遇到了关于我的 Dockerfile 的问题 -- 我有一个包含 Web 应用程序的容器。当然,当我启动容器时,Web 应用程序也会启动,通过将 ENTRYPOINT 设置为 '/sbin/init',我可以容器 运行 永远(例如,它不只是启动和关闭)。
现在,问题是,我需要 进行一些 NFS 挂载 'after' 容器是第一次启动 。
我知道我可以删除 ENTRYPOINT 并利用 CMD 传入让我们说 CMD ./my_create_mount_script.sh
但是,我如何确保我的容器保持 运行 就像我使用 ENTRYPOINT /sbin/init 时一样?
例如,
如果我在 Dockerfile 中的倒数第二行是: CMD ./my_create_mount_script.sh(脚本内部只是一些挂载语句)我的最后一行是:ENTRYPOINT /sbin/init据我所知,它对我没有任何好处,因为在这种情况下,ENTRYPOINT 期望 CMD 将参数传递给它,没有别的。
^ 如果重要,我会把这个容器部署到 AWS ECS
您可以传递多个 CMD 参数,例如:
CMD /sbin/init ; /do_something_else
或者您可以创建一个脚本来执行您想要的所有操作,包括启动网络应用程序,然后将其传递给您的 ENTRYPOINT