【问题标题】:Unrecognized service of Varnish 6.2.xVarnish 6.2.x 无法识别的服务
【发布时间】:2020-03-18 17:09:16
【问题描述】:

我已经从 Docker 官方镜像中安装了镜像 Varnish 6.2。链接是https://hub.docker.com/_/varnish

但我在容器内找不到它的服务。

service varnish restart在终端的输出是

root@bf23572d6dad:/# service varnish restart
varnish: unrecognized service

有什么想法吗?

【问题讨论】:

    标签: varnish


    【解决方案1】:

    在我们的官方 Docker 镜像中,Varnish 不作为服务运行,也不是守护进程,而是在容器启动时在前台运行。

    这是一个运行 Varnish 容器的示例:

    docker run --name varnish -d varnish:latest
    

    通过docker top varnish 命令,您可以看到该容器中正在运行的内容:

    ➜  ~ docker top varnish
    PID                 USER                TIME                COMMAND
    33737               101                 0:00                varnishd -F -f /etc/varnish/default.vcl
    33796               102                 0:00                {cache-main} varnishd -F -f /etc/varnish/default.vcl
    

    如您所见,varnishd 主进程正在运行,但 -F 标志表明它正在前台运行。

    根据 Docker 最佳实践,一个容器应该只有 1 个关注点,并且只能运行一个进程。不建议使用服务管理器在后台运行某些进程。如果在前台运行的进程失败,容器将失败,Docker 可以尝试重新启动它。

    【讨论】:

    • 如何在容器内重新加载清漆?因为我想修改default.vcl来测试
    • 将本地 VCL 文件挂载到容器上的 /etc/varnish/default.vcl 中。或者,当您在容器的 bash shell 上时,您可以使用以下命令序列重新加载 VCL:varnishadm vcl.load a /etc/varnish/default.vclvarnishadm vcl.use a 在这种情况下,值 a 只是一个标签。你可以使用任何你想要的标签。
    猜你喜欢
    • 2014-06-10
    • 2023-03-24
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 2016-02-10
    • 2015-12-12
    • 1970-01-01
    相关资源
    最近更新 更多