Varnish 6 无法识别的服务。2.x

Unrecognized service of Varnish 6.2.x

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

但是我在容器里面找不到它的服务。

service varnish restart终端的输出是

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

有什么想法吗?

在我们的官方 Docker 图像中,Varnish 没有 运行 作为服务,它不是守护进程,但是当容器启动时它 运行 在前台.

下面是一个 运行 设置 Varnish 容器的例子:

docker run --name varnish -d varnish:latest

通过docker top varnish命令,你可以看到那个容器里有什么运行ning:

➜  ~ 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 进程是 运行ning,但是 -F 标志表明它在前台 运行ning。

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