当前位置: 首页 > 知识库问答 >
问题:

在Dockerfile中实现自己的CMD时是否可以不重写基映像CMD?

邵繁
2023-03-14

我发现,如果我实现自己的CMD,当我用派生映像运行容器时,我将失去基映像提供的所有功能。如果我在派生的DockerFile中放入一个CMD,我的容器就不会继续运行....如何从基映像重用相同的入口点和CMD,只需添加更多命令?我想这样做,因为我希望在每次运行新容器时都运行某些命令。(听起来对吗?)

CMD[“Apache2-前景”]

https://github.com/docker-library/php/tree/b6fd2f70018163227f0f18f3ba1fa4d70e6d929e/7.4/buster/apache

共有1个答案

康言
2023-03-14

当容器启动时,Docker只运行一个命令,如果您有基映像和派生映像,它将从派生映像运行该命令。或者,如果您在使用docker run命令/使用docker-compose中的其他命令时重写了该命令,则它将优先于映像中定义的命令。

您可以创建一个shell文件或任何可执行文件(如果容器中有python可用,就像python文件一样)来执行任意数量的命令,并在容器启动期间使用bash shell(或容器中可用的任何其他shell)运行该文件。

 类似资料:
  • 在派生的DockerFile中重写CMD时,我得到了一些不一致的行为。 基本Dockerfile如下所示: 这个基本映像是由另一个团队提供的,很难更改它。我现在正在编写一组容器,我希望在这些容器中多次运行同一个应用程序,但配置不同。 所以我想我应该扩展映像,将更多的配置复制到映像中,并使用不同的spring配置文件运行映像: 并在docker-compose.yml中: 我希望有两个容器运行,分别

  • 问题内容: 我在网上看过Java教程,它们似乎都与捕获其他已编写组件给出的ActionEvent有关。是否有可能编写自己的对象,而这些对象具有一组自己的条件,这些条件会触发actionEvents,然后可以由已注册为侦听器的其他类捕获该actionEvents? 因此,例如:如果我希望一个对羊计数的对象在已注册为侦听器的所有睡眠者对象上计数了100只羊后发送一个actionEvent。 有没有办法

  • 我正在进行一项任务,该任务涉及使用Dockerfile以centOs为基础构建docker图像。dockerfile中的一个步骤需要设置http\U proxy和https\U proxy ENV变量,以便在代理之后工作。 由于此Dockerfile将由具有不同代理的多个团队使用,因此我希望避免为每个团队编辑Dockerfile。相反,我正在寻找一种解决方案,允许我在构建时传递ENV变量,例如。,

  • 我有一个容器在其入口点中使用卷。例如: 我将它移到了compose,但只有当我的compose指向部分中的Dockerfile时,它才会起作用,如果我试图在部分中写入相同的行,则没有按照我的预期操作,并抛出file not found错误。 我还尝试使用,这给了我同样的错误。 问题是--为什么在执行docker-compose“命令”时我没有这个卷?有没有办法使这个工作/重写我的dockerfil

  • 问题内容: 我正在一个项目中,该项目有很多由库创建的对象,并且无法访问这些对象的创建过程。 以下代码片段很好地说明了我的问题。 码: 是Clazz在编译时可能会或可能不会实现的接口。 码: 以下代码是我遇到的问题。请注意以下几点: 仅在c是的实例时调用。 并且都是我无法访问的类中的私有方法。 在编译时,将 不 包含名为的方法。 ExampleExecutor 不是 我的课程。我无法以任何方式访问它

  • 问题内容: 根据Docker文档,要构建自己的映像,您必须始终使用指令指定基本映像。 显然,Docker索引中有很多图像可供选择,但是如果我想构建自己的图像怎么办?那可能吗? 如果我理解正确,该映像是在Ubuntu上构建的,并且我想尝试使用Debian映像。另外,我想真正了解Docker的工作原理,该映像对我来说仍然是一个黑匣子。 编辑: 有关创建基本映像的官方文档 问题答案: 您可以看一下如何创