容器运行后通过Dockerfile运行命令

时间:2019-02-14 21:06:00

标签: docker dockerfile

我正在尝试为keycloak设置Dockerfile,我想在容器启动后运行一些命令

原因是服务器启动后,我想在每次运行Dockerfile时添加一些自定义配置。我尝试使用“ RUN”命令,但是由于使用run命令时容器尚未启动,因此会导致整个Dockerfile炸毁

我以为在容器启动后运行命令,我可以使用“ CMD”,但是当我甚至尝试运行CMD ["echo", "hi"]CMD ["sh", "echo", "hi"]时,都会收到错误消息“无效的选项回显”

容器运行后,是否有一种方法可以使命令运行?

1 个答案:

答案 0 :(得分:0)

定义容器在启动时将执行的操作的方法是指定CMDENTRYPOINT。这些命令在您使用docker run时执行。您可以在构建阶段使用RUN执行各种任务。根据您要执行的操作,它可能合适也可能不合适。

尝试CMD sh -c 'echo hi'CMD ["sh", "-c", "echo hi"]

首选exec(列表样式)格式,但也可以使用shell格式。

此外,请记住,Dockerfile仅用于构建过程。容器通常被设计为无状态的。您不必在每次更改应用程序配置中的内容时都进行重建。