2016-06-26 28 views
1

Dieses ist mein Docker Compose-Datei:Wordpress Behälter kann keine Verbindung zum MariaDB Behälter

version: '2' 
services: 
    wordpress: 
    image: wordpress 
    environment: 
     WORDPRESS_DB_HOST: db 
     WORDPRESS_DB_USER: root 
     WORDPRESS_DB_PASSWORD: ***** 
     WORDPRESS_DB_NAME: wordpress 
    links: 
     - db:mysql 
    ports: 
     - 8000:80 
    #network_mode: "none" 
    restart: always 

    db: 
    image: mariadb 
    environment: 
     MYSQL_ROOT_PASSWORD: ***** 
     MYSQL_DATABASE: wordpress 
     MYSQL_USER: root 
     MYSQL_PASSWORD: ***** 
    ports: 
     - 8001:3306 
    volumes: 
     - ./configs/etc/mysql/my.cnf:/etc/mysql/my.cnf 
    restart: always 

Und das ist der Fehler, den ich in Docker logs bekam:

Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 10 

10 Line ist die "Links" ein .

Ich habe auch eine 502 Bad Gateway Fehler auf der Titelseite (I Nginx als Proxy in meinem Host-Betriebssystem installiert Port weiterleiten 80-8000)

Beachten Sie, dass die Nginx Proxy-Zugriffsprotokolle alle als zurückgegeben werden 302 nicht 502.

Ps: ich bin mit dem official Docker images

+0

könnten Sie versuchen, ohne: mysql? im Bereich Links? –

+0

Ich habe versucht, das gleiche Problem. – 4m1nh4j1

+0

Ich habe eine andere WP-Installation ausprobiert und festgestellt, dass sie mit demselben Code funktioniert, aber in einem anderen Verzeichnis. Der mysql-Fehler ist in diesem Fall unbedeutend, aber ich weiß nicht, woher das Problem kommt. – 4m1nh4j1

Antwort

0

Sie brauchen nicht öffentlich MariaDB Port zu öffnen, nur Port 3306 zu anderen Behältern aus.

So in db ersetzen:

ports: 
    - 8001:3306 

mit:

expose: 
    - "3306" 

Ich glaube, dass in Wordpress Standard-Datenbank-Port 3306 ist, die in MariaDB auch Standard-Port ist.