清漆和wordpress之间的Docker链接不工作

清漆和wordpress之间的Docker链接不工作,wordpress,docker,docker-compose,varnish,Wordpress,Docker,Docker Compose,Varnish,这是我的docker撰写文件: version: '2' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpr

这是我的docker撰写文件:

version: '2'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_PASSWORD: wordpress

   varnish:
     image: eeacms/varnish
     depends_on:
       - wordpress
     ports:
       - 9000:6081
     environment:
       DNS_ENABLED: "true"
       BACKENDS: wordpress
       BACKENDS_PORT: 80
volumes:
    db_data:
wordpress正在运行
0.0.0:8080
172.17.0.1:8080

但是清漆容器的/etc/hosts是这样的

root@4cc3dc214d69:/# cat /etc/hosts
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.3  wordpress fd3f01c29d6a dockoor_wordpress_1
172.17.0.3  wordpress_1 fd3f01c29d6a dockoor_wordpress_1
172.17.0.3  dockoor_wordpress_1 fd3f01c29d6a
172.17.0.4  4cc3dc214d69
varnish正在将wordpress映射到172.17.0.3 这就是为什么在尝试访问
0.0.0.0:8000时

Error 503 Backend fetch failed

Backend fetch failed
Guru Meditation:

XID: 3

Varnish cache server
有人能指出我的写作文件有什么问题吗

p.S docker compose日志显示varnish确实击中了worpress,但得到了302的响应

02 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:19 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:20 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:21 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:22 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:23 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:24 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:25 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:26 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:27 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:29 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:30 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:31 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:32 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:33 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:34 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:35 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:36 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:37 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:38 +0000] "GET / HTTP/1.1" 302 338 "-" "-"
wordpress_1     | 172.17.0.4 - - [25/Mar/2017:10:45:39 +0000] "G

您的链接似乎正在按预期工作。0.0.0.0不是您连接到的IP地址,它是一个侦听器IP,告诉网络堆栈侦听所有接口,而不是主机上的特定IP。在您的情况下,所有IP都包括127.0.0.1(容器内的环回)和172.17.0.3(网络上其他容器可访问的IP)

请注意,链接在很大程度上是不推荐的,最好在网络上配置容器(默认网桥除外)同样地,编译版本1文件格式也基本上被弃用,你应该考虑升级到至少2版本的组合文件格式。在这种格式下,默认情况下会创建一个网络来让你的容器进行通信。 下面是以版本2格式编写文件的示例:

version: '2'
services:
  wordpress:
    image: wordpress
    ports:
      - 8080:80

  mysql:
    image: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: examplepass

  varnish:
    image: eeacms/varnish
    ports:
    - "8000:6081"
    environment:
      DNS_ENABLED: "true"
      BACKENDS: "wordpress"
      BACKENDS_PORT: 8080
http 302是一个重定向,无论您运行什么,都可以看到url,但没有遵循重定向,或者wordpress没有配置为提供正确的重定向


更新:您看到的varnish错误是因为您正在wordpress服务器上探测/并以302重定向进行响应。varnish似乎需要探测url的200成功代码。为此,您可以向varnish环境添加如下变量:

BACKENDS_PROBE_URL: /wp-includes/js/jquery/jquery.js

已更改撰写文件。仍保持相同的行为。