Docker Container - Frontend nicht erreichbar


B4rny
Go to solution Solved by mgutt,

Recommended Posts

Hallo zusammen,

 

ich versuche aktuell bitnami/wordpress-nginx über Unraid / Docker zu installieren.

Es ist der erste Docker Container, welchen ich in Unraid erstelle. Vorher hatte ich Portainer auf einem Pi genutzt.

Ich bin mir nicht ganz sicher, wo mein Problem liegt. Ich gehe davon aus, dass mir eine grundlegende Sache nicht bewusst ist, oder mir eine essenzielle Sache in diesem sehr umfangreiche dokumentierten Container nicht aufgefallen ist.

 

Mein Problem, kurz und knapp: Ich komme nicht auf das Frontend. (ERR_CONNECTION_REFUSED)

 

Das bisherige Vorgehen:

  1. Datenbank über Adminer in der externen MariaDB anlegen.
  2. Nutzer anlegen und Rechte für die Datenbank zuweisen.
  3. Der offiziellen docker-compose.yml folgen und den Container so in Unraid anlegen.
    Das habe ich natürlich schon mit diversen Änderungen probiert. Die folgende Konfiguration müsste nach meinem Verständnis korrekt sein.

 

<?xml version="1.0"?>
<Container version="2">
  <Name>wordpress-nginx</Name>
  <Repository>bitnami/wordpress-nginx</Repository>
  <Registry>https://hub.docker.com/r/bitnami/wordpress-nginx</Registry>
  <Network>bridge</Network>
  <MyIP/>
  <Shell>sh</Shell>
  <Privileged>false</Privileged>
  <Support/>
  <Project/>
  <Overview>WordPress Nginx</Overview>
  <Category/>
  <WebUI>http://[IP]:[PORT:8090]/</WebUI>
  <TemplateURL/>
  <Icon>https://s.w.org/style/images/about/WordPress-logotype-wmark.png</Icon>
  <ExtraParams/>
  <PostArgs/>
  <CPUset/>
  <DateInstalled>1650036972</DateInstalled>
  <DonateText/>
  <DonateLink/>
  <Description>Beschreibung</Description>
  <Networking>
    <Mode>bridge</Mode>
    <Publish>
      <Port>
        <HostPort>8090</HostPort>
        <ContainerPort>80</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
      <Port>
        <HostPort>4390</HostPort>
        <ContainerPort>443</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
    </Publish>
  </Networking>
  <Data>
    <Volume>
      <HostDir>/mnt/user/appdata/wordpress</HostDir>
      <ContainerDir>/bitnami/wordpress</ContainerDir>
      <Mode>rw</Mode>
    </Volume>
  </Data>
  <Environment>
    <Variable>
      <Value>192.168.178.xx</Value>
      <Name>WORDPRESS_DATABASE_HOST</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>3306</Value>
      <Name>WORDPRESS_DATABASE_PORT_NUMBER</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>bitnami_wordpress</Value>
      <Name>WORDPRESS_DATABASE_NAME</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>bn_wordpress</Value>
      <Name>WORDPRESS_DATABASE_USER</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>******</Value>
      <Name>WORDPRESS_DATABASE_PASSWORD</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>no</Value>
      <Name>ALLOW_EMPTY_PASSWORD</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>256M</Value>
      <Name>PHP_MEMORY_LIMIT</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>512M</Value>
      <Name>PHP_UPLOAD_MAX_FILESIZE</Name>
      <Mode/>
    </Variable>
  </Environment>
  <Labels/>
  <Config Name="Container Port" Target="80" Default="" Mode="tcp" Description="Connects to internal port 80 (Ex. 8090:80)" Type="Port" Display="always" Required="false" Mask="false">8090</Config>
  <Config Name="https" Target="443" Default="" Mode="tcp" Description="Container Port: 443" Type="Port" Display="always" Required="false" Mask="false">4390</Config>
  <Config Name="www" Target="/bitnami/wordpress" Default="" Mode="rw" Description="Container Path: /path/to/wordpress-persistence:/bitnami/wordpress" Type="Path" Display="always" Required="false" Mask="false">/mnt/user/appdata/wordpress</Config>
  <Config Name="WORDPRESS_DATABASE_HOST" Target="WORDPRESS_DATABASE_HOST" Default="" Mode="" Description="Container Variable: WORDPRESS_DATABASE_HOST" Type="Variable" Display="always" Required="false" Mask="false">192.168.178.xx</Config>
  <Config Name="WORDPRESS_DATABASE_PORT_NUMBER" Target="WORDPRESS_DATABASE_PORT_NUMBER" Default="" Mode="" Description="Container Variable: WORDPRESS_DATABASE_PORT_NUMBER" Type="Variable" Display="always" Required="false" Mask="false">3306</Config>
  <Config Name="WORDPRESS_DATABASE_NAME" Target="WORDPRESS_DATABASE_NAME" Default="" Mode="" Description="Container Variable: WORDPRESS_DATABASE_NAME" Type="Variable" Display="always" Required="false" Mask="false">bitnami_wordpress</Config>
  <Config Name="WORDPRESS_DATABASE_USER" Target="WORDPRESS_DATABASE_USER" Default="" Mode="" Description="Container Variable: WORDPRESS_DATABASE_USER" Type="Variable" Display="always" Required="false" Mask="false">bn_wordpress</Config>
  <Config Name="PHP_MEMORY_LIMIT" Target="PHP_MEMORY_LIMIT" Default="" Mode="" Description="Container Variable: PHP_MEMORY_LIMIT" Type="Variable" Display="always" Required="false" Mask="false">256M</Config>
  <Config Name="PHP_UPLOAD_MAX_FILESIZE" Target="PHP_UPLOAD_MAX_FILESIZE" Default="" Mode="" Description="Container Variable: PHP_UPLOAD_MAX_FILESIZE" Type="Variable" Display="always" Required="false" Mask="false">512M</Config>
  <Config Name="WORDPRESS_DATABASE_PASSWORD" Target="WORDPRESS_DATABASE_PASSWORD" Default="" Mode="" Description="Container Variable: WORDPRESS_DATABASE_PASSWORD" Type="Variable" Display="always" Required="false" Mask="false">******</Config>
  <Config Name="ALLOW_EMPTY_PASSWORD" Target="ALLOW_EMPTY_PASSWORD" Default="" Mode="" Description="Container Variable: ALLOW_EMPTY_PASSWORD" Type="Variable" Display="advanced" Required="false" Mask="false">yes</Config>
</Container>

 

Ich versuche verzweifelt eine Fehlermeldung zu finden, um der Ursache auf die Spur zu kommen.

  1. Die Container Logs zeigen keinen Fehler.
  2. Der Container verbindet sich mit der Datenbank und es werden auch die typischen Tabellen angelegt.
  3. Frontend weder per https noch per http aufrufbar.

 

Ich weiß nicht mehr, wo ich noch ansetzen kann. Hat jemand eine Idee für mich?

Link to comment

Hier in der Doku wird /bitnami und nicht /bitnami/wordpress verlinkt. Bitte alles mit Appdata cleanup löschen und noch mal versuchen.

 

https://github.com/bitnami/bitnami-docker-wordpress-nginx

docker run -d --name wordpress -p 80:8080 -p 443:8443 \
  --env WORDPRESS_PASSWORD=my_password \
  --network wordpress-tier \
  --volume /path/to/wordpress-persistence:/bitnami \
  bitnami/wordpress-nginx:latest

 

Link to comment
  • Solution

Das ist das Problem:

 

NGINX_HTTP_PORT_NUMBER: Port used by NGINX for HTTP. Default: 8080

NGINX_HTTPS_PORT_NUMBER: Port used by NGINX for HTTPS. Default: 8443

 

In der Doku wird 80 auf 8080 verlinkt und 443 auf 8443:

 

docker run -d --name wordpress -p 80:8080 -p 443:8443

 

Du machst es aber andersherum bzw hast vermutlich gedacht der Container lauscht auf 80 und 443.

 

Dh du musst 8090 auf 8080 und 4390 auf 8443 verlinken. Dann würde es gehen. Oder du versuchst mit den beiden Variablen die Standardports zu ändern.

  • Thanks 1
Link to comment
27 minutes ago, mgutt said:

Hier in der Doku wird /bitnami und nicht /bitnami/wordpress verlinkt. Bitte alles mit Appdata cleanup löschen und noch mal versuchen.

 

https://github.com/bitnami/bitnami-docker-wordpress-nginx

docker run -d --name wordpress -p 80:8080 -p 443:8443 \
  --env WORDPRESS_PASSWORD=my_password \
  --network wordpress-tier \
  --volume /path/to/wordpress-persistence:/bitnami \
  bitnami/wordpress-nginx:latest

 

 

War mir ebenfalls aufgefallen. Das ist nicht einheitlich festgehalten. Hatte aber beides probiert, hat nur nichts geändert.

 

18 minutes ago, mgutt said:

Das ist das Problem:

 

NGINX_HTTP_PORT_NUMBER: Port used by NGINX for HTTP. Default: 8080

NGINX_HTTPS_PORT_NUMBER: Port used by NGINX for HTTPS. Default: 8443

 

In der Doku wird 80 auf 8080 verlinkt und 443 auf 8443:

 

docker run -d --name wordpress -p 80:8080 -p 443:8443

 

Du machst es aber andersherum bzw hast vermutlich gedacht der Container lauscht auf 80 und 443.

 

Dh du musst 8090 auf 8080 und 4390 auf 8443 verlinken. Dann würde es gehen. Oder du versuchst mit den beiden Variablen die Standardports zu ändern.

 

Vielen Dank für diese Erklärung! Das ist die Lösung.

 

Mir war diese Variable ebenfalls aufgefallen und ich hatte mich schon gefragt, was sie bedeuten soll und ebenfalls einige Male geändert. Aber ich hatte nicht den Zusammenhang verstanden. Des Weiteren war mein Port 8080 schon in Nutzung. Was vermutlich das Hauptproblem war.

 

Einen eigenen Port auf 8080 und 8443 zu verlinken, macht ja eigentlich keinen Sinn. Das wäre dann ja doppelt gemoppelt (8090 > 8080 > 80).

Ich habe ein bisschen herumprobiert und nur die Nginx Ports anzugeben hat nicht funktioniert. Also muss man wohl beides angeben.

 

NGINX_HTTP_PORT_NUMBER 8090
Port 8090:8090

 

Nochmals vielen Dank für die Hilfe! Und hier noch die funktionierende Version:

 

<?xml version="1.0"?>
<Container version="2">
  <Name>bitnami-wordpress-nginx</Name>
  <Repository>bitnami/wordpress-nginx</Repository>
  <Registry>https://hub.docker.com/r/bitnami/wordpress-nginx</Registry>
  <Network>bridge</Network>
  <MyIP/>
  <Shell>sh</Shell>
  <Privileged>false</Privileged>
  <Support/>
  <Project/>
  <Overview/>
  <Category/>
  <WebUI>http://[IP]:[PORT:8090]/</WebUI>
  <TemplateURL/>
  <Icon>https://s.w.org/style/images/about/WordPress-logotype-wmark.png</Icon>
  <ExtraParams/>
  <PostArgs/>
  <CPUset/>
  <DateInstalled>1650058396</DateInstalled>
  <DonateText/>
  <DonateLink/>
  <Description/>
  <Networking>
    <Mode>bridge</Mode>
    <Publish>
      <Port>
        <HostPort>8090</HostPort>
        <ContainerPort>8090</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
      <Port>
        <HostPort>4390</HostPort>
        <ContainerPort>4390</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
    </Publish>
  </Networking>
  <Data>
    <Volume>
      <HostDir>/mnt/user/appdata/wordpress/</HostDir>
      <ContainerDir>/bitnami</ContainerDir>
      <Mode>rw</Mode>
    </Volume>
  </Data>
  <Environment>
    <Variable>
      <Value>8090</Value>
      <Name>NGINX_HTTP_PORT_NUMBER</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>4390</Value>
      <Name>NGINX_HTTPS_PORT_NUMBER</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>192.168.178.xx</Value>
      <Name>WORDPRESS_DATABASE_HOST</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>3306</Value>
      <Name>WORDPRESS_DATABASE_PORT_NUMBER</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>bitnami_wordpress</Value>
      <Name>WORDPRESS_DATABASE_NAME</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>bn_wordpress</Value>
      <Name>WORDPRESS_DATABASE_USER</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>******</Value>
      <Name>WORDPRESS_DATABASE_PASSWORD</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>256M</Value>
      <Name>PHP_MEMORY_LIMIT</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>512M</Value>
      <Name>PHP_UPLOAD_MAX_FILESIZE</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>no</Value>
      <Name>ALLOW_EMPTY_PASSWORD</Name>
      <Mode/>
    </Variable>
  </Environment>
  <Labels/>
  <Config Name="http nginx" Target="NGINX_HTTP_PORT_NUMBER" Default="" Mode="" Description="Container Variable: NGINX_HTTP_PORT_NUMBER" Type="Variable" Display="always" Required="false" Mask="false">8090</Config>
  <Config Name="http" Target="8090" Default="" Mode="tcp" Description="Container Port: 8090" Type="Port" Display="always" Required="false" Mask="false">8090</Config>
  <Config Name="https nginx" Target="NGINX_HTTPS_PORT_NUMBER" Default="" Mode="" Description="Container Variable: NGINX_HTTPS_PORT_NUMBER" Type="Variable" Display="always" Required="false" Mask="false">4390</Config>
  <Config Name="https" Target="4390" Default="" Mode="tcp" Description="Container Port: 4390" Type="Port" Display="always" Required="false" Mask="false">4390</Config>
  <Config Name="/bitnami" Target="/bitnami" Default="" Mode="rw" Description="Container Path: /bitnami" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/wordpress/</Config>
  <Config Name="WORDPRESS_DATABASE_HOST" Target="WORDPRESS_DATABASE_HOST" Default="" Mode="" Description="Container Variable: WORDPRESS_DATABASE_HOST" Type="Variable" Display="always" Required="true" Mask="false">192.168.178.50</Config>
  <Config Name="WORDPRESS_DATABASE_PORT_NUMBER" Target="WORDPRESS_DATABASE_PORT_NUMBER" Default="" Mode="" Description="Container Variable: WORDPRESS_DATABASE_PORT_NUMBER" Type="Variable" Display="always" Required="true" Mask="false">3306</Config>
  <Config Name="WORDPRESS_DATABASE_NAME" Target="WORDPRESS_DATABASE_NAME" Default="" Mode="" Description="Container Variable: WORDPRESS_DATABASE_NAME" Type="Variable" Display="always" Required="true" Mask="false">bitnami_wordpress</Config>
  <Config Name="WORDPRESS_DATABASE_USER" Target="WORDPRESS_DATABASE_USER" Default="" Mode="" Description="Container Variable: WORDPRESS_DATABASE_USER" Type="Variable" Display="always" Required="true" Mask="false">bn_wordpress</Config>
  <Config Name="WORDPRESS_DATABASE_PASSWORD" Target="WORDPRESS_DATABASE_PASSWORD" Default="" Mode="" Description="Container Variable: WORDPRESS_DATABASE_PASSWORD" Type="Variable" Display="always" Required="true" Mask="true">******</Config>
  <Config Name="PHP_MEMORY_LIMIT" Target="PHP_MEMORY_LIMIT" Default="" Mode="" Description="Container Variable: PHP_MEMORY_LIMIT" Type="Variable" Display="always" Required="false" Mask="false">256M</Config>
  <Config Name="PHP_UPLOAD_MAX_FILESIZE" Target="PHP_UPLOAD_MAX_FILESIZE" Default="" Mode="" Description="Container Variable: PHP_UPLOAD_MAX_FILESIZE" Type="Variable" Display="always" Required="false" Mask="false">512M</Config>
  <Config Name="ALLOW_EMPTY_PASSWORD" Target="ALLOW_EMPTY_PASSWORD" Default="" Mode="" Description="Container Variable: ALLOW_EMPTY_PASSWORD" Type="Variable" Display="advanced" Required="false" Mask="false">no</Config>
</Container>
Link to comment
2 minutes ago, B4rny said:

Einen eigenen Port auf 8080 und 8443 zu verlinken, macht ja eigentlich keinen Sinn. Das wäre dann ja doppelt gemoppelt (8090 > 8080 > 80).

Du verstehst da noch was falsch. Nginx ist der Webserver in dem Wordpress installiert ist. Der lauscht ausschließlich auf Port 8080. Einen Port 80 gibt es nicht.

 

Würdest du nun also den Container im br0 oder Host Netzwerk starten, würde der Container ausschließlich auf Port 8080 reagieren.

 

Wenn du dagegen den Nginx auf 8090 änderst, dann ändert sich rein technisch gar nichts. Nur dass er eben auf 8090 lauscht. Bei Bridge gäbe es dann trotzdem die Weiterleitung, nur eben nicht von 8090 auf 8080, sondern von 8090 auf 8090.

 

Was spricht eigentlich gegen den offiziellen Wordpress Container?

Link to comment

Ja gut, mit Netzwerken muss ich mich eindeutig noch etwas mehr beschäftigen. Das war mir so nicht bewusst.

 

5 minutes ago, mgutt said:

Was spricht eigentlich gegen den offiziellen Wordpress Container?

 

Nichts, der läuft super. Ich wollte einfach nur einen Container mit Nginx statt Apache ausprobieren.

Dazu passend wollte ich mir noch anschauen, wie man selber Container in Unraid erstellt und Vorlagen verwendet.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.