gpt4 book ai didi

docker - 如何扩展图像,使其仍然有效?什么时候图像可以在 Dockerfile 的 from 行中?

转载 作者:行者123 更新时间:2023-12-01 12:36:32 24 4
gpt4 key购买 nike

我有一个 sshd Dockerfile。有用。我可以通过 ssh 访问它。我调用图片local/c7-sshd .

from centos:7
...
expose 22
cmd ["/usr/sbin/sshd","-D"]

现在我想将此图像扩展为 httpd 图像。我有一个 Dockerfile,
from local/c7-sshd
...
expose 80
cmd ["/usr/sbin/httpd","-D","FOREGROUND"]

当我从此镜像启动容器时,httpd 会运行,但 sshd 不会。

所以我不知道什么时候可以在 from 之后出现图像在 Dockerfile 中。

谢谢。

最佳答案

您已正确“扩展”了 c7-sshd 镜像。问题在于CMD httpd 镜像中的指令替换了 CMD来自 c7-sshd 镜像的指令,因此只有 httpd 正在启动,而不是 sshd。每个图像只能有一个 CMD启动容器时运行的指令。

您需要做的是更改CMD指令,以便它同时启动 httpd 和 sshd。使用 Mark O'Connor 建议的流程管理器执行此操作的最佳方法 https://docs.docker.com/articles/using_supervisord/ .

此外,通常最好在从 ENTRYPOINT 调用的脚本中执行此操作。指令而不是 CMD ,以便您可以使用 CMD在运行时向 ENTRYPOINT 提供参数脚本。

最后,你真的需要 sshd 吗?您可能会发现使用 docker exec -it CONTAINER /bin/bash是更好的解决方案。

关于docker - 如何扩展图像,使其仍然有效?什么时候图像可以在 Dockerfile 的 from 行中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29192239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com