Docker,清漆,连接由同行重置

我只是尝试使用Docker设置Web服务器。
我有3个不同的容器:</ p >


  • jprjr / php-fpm </ p>

    sudo docker run --name c_php -fpm -v $ HOME / data / webstack / www:/ srv / http:ro -p 9000:9000 -d jprjr / php-fpm </ code> </ p> </ li>

  • nginx </ p>

    sudo docker run --name c_nginx -v $ HOME / data / webstack / www:/ usr / share / nginx / html:ro -p 8080:80 --link c_php-fpm:c_php- fpm -d nginx nginx </ code> </ p> </ li>

  • jacksoncage / varnish </ p>

    sudo docker run --name c_varnish - i -d -p 80:80 --link c_nginx:c_nginx -e VARNISH_BACKEND_PORT = 80 -e VARNISH_BACKEND_IP = c_nginx jacksoncage / varnish </ code> </ p> </ li>
    </ ul>

    < p> PHP和nginx工作没有任何问题,但是varnish有一个错误:</ p>

    curl -I http://localhost/index.html
    curl:(56) Recv失败:通过对等方重置连接</ code> </ p>

    sudo docker ps </ code>返回:</ p>

    CONTAINER ID 图片 COMMAND CREATED STATUS PORTS NAMES
    4ee21c4a80e2 jacksoncage / varnish:latest“/ bin / bash”25分钟前上涨25分钟0.0.0.0:80->80/tcp c_varnish

    4dcc7babd92c nginx:latest“nginx”16小时前 上传48分钟443 / tcp,0.0.0.0:8080-&gt; 80/tcp c_nginx

    3c0f8c1d634c jprjr / php-fpm:最新“php-fpm -F”16小时前上传48分钟0.0.0.0:9000- &gt; 9000 / tcp c_php-fpm </ code> </ p>

    sudo docker logs c_varnish </ code>什么都不返回。</ p>

    谢谢! </ p>
    </ div>

展开原文

原文

I'm just trying to set up a web server using Docker. I have 3 different containers:

  • jprjr/php-fpm

    sudo docker run --name c_php-fpm -v $HOME/data/webstack/www:/srv/http:ro -p 9000:9000 -d jprjr/php-fpm

  • nginx

    sudo docker run --name c_nginx -v $HOME/data/webstack/www:/usr/share/nginx/html:ro -p 8080:80 --link c_php-fpm:c_php-fpm -d nginx nginx

  • jacksoncage/varnish

    sudo docker run --name c_varnish -i -d -p 80:80 --link c_nginx:c_nginx -e VARNISH_BACKEND_PORT=80 -e VARNISH_BACKEND_IP=c_nginx jacksoncage/varnish

PHP and nginx are working without any problem but there is an error for varnish:

curl -I http://localhost/index.html curl: (56) Recv failure: Connection reset by peer

sudo docker ps return:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4ee21c4a80e2 jacksoncage/varnish:latest "/bin/bash" 25 minutes ago Up 25 minutes 0.0.0.0:80->80/tcp c_varnish
4dcc7babd92c nginx:latest "nginx" 16 hours ago Up 48 minutes 443/tcp, 0.0.0.0:8080->80/tcp c_nginx
3c0f8c1d634c jprjr/php-fpm:latest "php-fpm -F" 16 hours ago Up 48 minutes 0.0.0.0:9000->9000/tcp c_php-fpm

sudo docker logs c_varnish return nothing.

Thanks !

dongyu4908
dongyu4908 它返回:后端主机'“${VARNISH_BACKEND_IP}”无法解析为IP地址:ai_socktype不支持Servname(对不起,如果该错误消息是乱码。)('输入'第8行Pos13).host=“${}VARNISH_BACKEND_IP“;------------#######################-在后端规范中从以下开始:('input'Line7Pos1)backenddefault{#######----------运行VCC编译失败,退出1VCL编译失败无法打开/var/lib/varnish/4ee21c4a80e2/_.vsm:没有这样的文件或目录
5 年多之前 回复
douzheng1853
douzheng1853 这意味着Varnish并没有真正监听容器内的端口80。尝试手动启动./start.sh并检查错误。BTW我以前的命令应该说dockerexec-itc_varnishbash(不是清漆)。
5 年多之前 回复
douhai5835
douhai5835 谢谢你的回答,我有以下错误:curl:(7)无法连接到localhost端口80:连接被拒绝。
5 年多之前 回复
duanpacan9388
duanpacan9388 我还在另一个应用程序上获得了“由peer重置连接”,因为我的服务器(在容器内运行)只在localhost上侦听。你能通过dockerexec-itvarnishbash进入Varnish容器并试试curl-Ihttp://localhost/index.html里面吗?
5 年多之前 回复

1个回答



与Varnish VCL文件相关的容器当前图像中存在一个错误,不再接受后端配置中的环境变量: https://github.com/jacksoncage/varnish-docker/issues/2 </ p>

要解决此问题,请从 https://获取原始Dockerfile和相关文件。 github.com/jacksoncage/varnish-docker ,在 https中应用补丁 ://github.com/jacksoncage/varnish-docker/pull/3/commits 并使用</ p>

  sudo docker build -t jacksoncage / varnish重建图像。

</ code> </ pre>

您应该能够在生成的图像正常工作的情况下运行新容器。</ p>
</ div>

展开原文

原文

There is a bug in the current image of the container related with Varnish VCL files no longer accepting environment variables in the backend config: https://github.com/jacksoncage/varnish-docker/issues/2

To solve it, get the original Dockerfile and associated files from https://github.com/jacksoncage/varnish-docker, apply the patch in https://github.com/jacksoncage/varnish-docker/pull/3/commits and rebuild the image with

sudo docker build -t jacksoncage/varnish .

You should be able to run new containers with the generated image working correctly.

duanbei1598
duanbei1598 感谢@dukebody,补丁现在已经提交到master,并且现在可以在docker hub上使用varnish config中不使用环境变量的新版本,请通过docker pull jacksoncage / varnish下载
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问