【问题标题】:How can I change a docker image start如何更改 docker 映像启动
【发布时间】:2018-01-18 20:37:21
【问题描述】:

当我启动我的容器时,我有一个以默认配置开始的 SOLR 图像。 我想通过引用不同的配置文件来更改 SOLR 在我的容器中启动的方式。当然,我还是想用一开始的原图。

这样做的最佳做法是什么? 如果我使用引用原始图像的 docker 文件,它将使用默认值启动它,因为没有修改任何脚本。

我还考虑过在我的图像上提交我的新配置文件,这可行,但仍然不会更改启动脚本。 有人可以指导我做到这一点的最佳做法吗? 提前感谢您的帮助。

【问题讨论】:

标签: docker


【解决方案1】:

容器的启动始终由ENTRYPOINT 和CMD 控制。在这种情况下,如果您想覆盖它,您可以创建自己的脚本并在CMD 和ENTRYPOINT 定义一个空环境来执行CMD 但此外,它会覆盖您之前在Dockerfile 中的ENTRYPOINT(您也可以提供不同的 ENTRYPOINT 脚本)。您可以在 Dockerfile 中执行以下操作 -

FROM solr:latest
...................
...................

COPY your-data /container-data
ENTRYPOINT ["/usr/bin/env"]
CMD /run.sh

您可以使用COPY 复制容器内的数据并定义要在run.sh 中执行的操作,run.sh 是您自己的脚本,您希望在容器启动时执行该脚本。

【讨论】:

  • 抱歉耽搁了,我正在试验您的建议,但我需要覆盖容器中的复杂脚本。我可以确认使用 CMD 对我来说非常好。非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-05
  • 2015-11-20
  • 2020-10-17
  • 2023-03-22
  • 1970-01-01
  • 2021-10-07
  • 2017-01-10
相关资源
最近更新 更多