gpt4 book ai didi

redis - 在 debian/ubuntu 启动时启动 redis-server

转载 作者:IT王子 更新时间:2023-10-29 06:05:29 27 4
gpt4 key购买 nike

我正在尝试创建一个 docker 容器,其中 redis 在启动时启动。将在连接到 redis 数据库的其他容器上运行其他前台服务。

由于某种原因,当我运行容器时服务没有启动。这是我简化的 Dockerfile

FROM debian

# this solves an issue described here:
# http://askubuntu.com/questions/365911/why-the-services-do-not-start-at-installation
RUN sed -i -e s/101/0/g /usr/sbin/policy-rc.d

# install redis-server
RUN apt-get update && apt-get install -y redis-server

# updates init script (redundant)
RUN update-rc.d redis-server defaults

# ping google to keep the container running in foreground
CMD ["ping", "google.com"]

谁能解释一下为什么这不起作用以及应该如何正确完成?

最佳答案

所以 docker 容器就像一个完整的操作系统,但有一些关键的区别。它不会运行完整的初始化系统。它旨在并旨在运行单个进程树。虽然您可以在容器中运行 runit 等主管,但您实际上是在与 docker 的工作背道而驰,所有的工具和文档都会引导您远离使用 VM 之类的容器,而转向 1 个进程/服务的和谐每个容器。

所以 redis 没有启动,因为 ping 命令实际上是容器中运行的唯一进程。

there will be other foreground services running on that other container which will connect to the redis db.

不要这样做。真的。当您在每个容器中放置 1 个进程并通过网络链接连接它们时,一切都会变得更容易。

关于redis - 在 debian/ubuntu 启动时启动 redis-server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32334942/

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