2015-01-10 65 views
1

我只是試圖建立一個使用Docker的Web服務器。 我有3個不同的容器:碼頭,清漆,連接重置由對端

  • 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 /清漆

    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和Nginx的是工作沒有任何問題,但有一個錯誤的清漆:

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

sudo docker ps回報:

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任何回報。

謝謝!

+1

我在另一個應用程序上也得到了「通過對等方重置連接」,因爲我的服務器(在容器中運行)只在本地主機上進行偵聽。你可以通過'docker exec -it varnish bash'進入varnish容器並嘗試'curl -I http:// localhost/index.html'裏面嗎? – dukebody

+0

感謝您的回答,我有以下錯誤:'捲曲:(7)無法連接到本地端口80:連接被拒絕。 – Neabfi

+0

這意味着Varnish並沒有在容器內的端口80上真正收聽。嘗試手動啓動'。/ start.sh'並檢查錯誤。順便說一句,我以前的命令應該說'docker exec -it c_varnish bash'(不是'varnish')。 – dukebody

回答

0

有清漆VCL相關容器的當前圖像中的錯誤文件在後臺配置不再接受環境變量:https://github.com/jacksoncage/varnish-docker/issues/2

爲了解決這個問題,得到原始Dockerfile和相關文件從https://github.com/jacksoncage/varnish-docker,適用在https://github.com/jacksoncage/varnish-docker/pull/3/commits補丁和重建圖像與

sudo docker build -t jacksoncage/varnish . 

你應該能夠運行與生成的圖像正常工作,新的容器。

+0

謝謝@dukebody,這個補丁現在已經提交到master,並且一個新版本不使用varnish config裏面的環境變量現在可以在docker hub上使用,請通過'docker pull jacksoncage/varnish' – jacksoncage