Ich versuche, eine grundlegende Entwicklungsmaschine mit php7
, nginx
und mariaDB
, mit docker-compose
zu erstellen.Docker komponieren Verknüpfung zu mariaDB
Die abgespeckte Version meiner compose Datei ist wie folgt:
wwwroot:
container_name: wwwroot
image: wwwroot
volumes:
- .:/var/www
restart: always
nginx:
container_name: nginx
image: nginx
links:
- php70
volumes_from:
- wwwroot
ports:
- "80:80"
- "443:443"
restart: always
php70:
container_name: php70
image: kreable/php70
volumes_from:
- wwwroot
links:
- mariadb
restart: always
mariadb:
container_name: mariadb
image: mariadb
environment:
DB_ADMIN_PASS: pass
ports:
- "3306:3306"
restart: always
Das funktioniert gut und erzeugt die gewünschten Behälter. Das Problem kommt mit dem Versuch, ein einfaches PHP-Skript mit der Datenbank zu verbinden. Ich habe immer bekommen:
SQLSTATE[HY000] [2002] Connection refused
Meine PHP-Anwendung ist in der wwwroot
Behälter.
Muss ich noch weitere Einstellungen vornehmen, damit meine PHP-Anwendung sich mit dem mariaDB-Container verbinden kann?
Danke.
Das PHP-Skript ist eine einfache 'PDO'-basierte Verbindung. Ich versuche eine Verbindung zu '127.0.0.1' mit' root' und 'pass' als Benutzernamen/Passwort herzustellen. – user1970557
Können Sie dieses Code-Snippet zu Ihrer Frage hinzufügen, so wird es einfacher zu sehen, ob Sie einen Fehler in diesem Code haben. Außerdem sollten Sie nicht versuchen, sich mit '127.0.0.1' zu verbinden, Sie sollten versuchen, sich mit' mariadb' zu verbinden, da localhost den Container nicht verlassen kann und docker einen DNS-Alias namens mariadb erstellt, der verlinkt zum Mariadb-Behälter. Stellen Sie außerdem sicher, dass Sie den richtigen Port 3306 verwenden. –