# TYPO3 in Docker installieren: So geht’s

TYPO3 in Docker zu betreiben bietet den Vorteil, eine **konsistente und isolierte Entwicklungsumgebung** zur Verfügung zu haben, die einfach bereitgestellt und gewartet werden kann.

## Das sind die Voraussetzungen für TYPO3 in Docker

Bevor Sie mit der Installation von TYPO3 in [Docker](https://www.ionos.at/digitalguide/server/knowhow/was-ist-docker/) beginnen, müssen einige Voraussetzungen erfüllt sein:

- **Installiertes Docker:** Docker muss auf Ihrem System installiert und lauffähig sein. Laden Sie es von der offiziellen Docker-Website herunter und befolgen Sie die Installationsanweisungen.
- **Docker Compose:** Zusätzlich zu Docker benötigen Sie Docker Compose, ein Tool, mit dem Sie Multi-Container-Anwendungen wie TYPO3 einfach definieren und ausführen können. Stellen Sie sicher, dass Docker Compose auf Ihrem System installiert ist. Es wird oft zusammen mit Docker installiert; ansonsten finden Sie die Anleitung in der Docker-Compose-Dokumentation.
- **Arbeitsspeicher:** 4 GB RAM sind ausreichend für eine einfache TYPO3-Entwicklungsumgebung mit wenigen Containern (z. B. TYPO3, MySQL).
- **CPU:** Ein Dual-Core-Prozessor kann bereits grundlegende Entwicklungsaufgaben erfüllen.
- **Festplattenspeicher:** 10 GB freier Speicherplatz sollten für Docker-Images, [Docker-Container](https://www.ionos.at/digitalguide/server/knowhow/docker-container/) und die TYPO3-Installation mindestens gegeben sein. Empfehlenswert sind 20 bis 30 GB freier Speicherplatz, um genügend Kapazitäten für Datenbanken, verschiedene Container, Logs und Backups zu haben.

## Schritt-für-Schritt-Anleitung: TYPO3 in Docker betreiben

Sie können TYPO3 und seine Abhängigkeiten in separaten Containern betreiben, was Konflikte mit anderen Projekten auf dem **Host-System** vermeidet. Im Folgenden erklären wir Ihnen ausführlich alle Installationsschritte.

### Schritt 1: Erstellen eines neuen Projektverzeichnisses

Öffnen Sie Ihr **Terminal** oder Ihre Eingabeaufforderung und erstellen Sie ein neues Verzeichnis für Ihr TYPO3-Projekt:

```bash
mkdir typo3-docker
```

Wechseln Sie dann in dieses Verzeichnis:

```bash
cd typo3-docker
```

### Schritt 2: docker-compose.yml-Datei erstellen

Nun legen Sie eine `docker-compose.yml`-Datei an, die die **Konfiguration** für Ihre TYPO3-Umgebung definiert. Diese Datei beschreibt, welche Container Sie benötigen und wie diese konfiguriert werden.

Öffnen Sie einen Texteditor und erstellen Sie die `docker-compose.yml`-Datei mit folgendem Inhalt:

```yaml
version: '3'
services:
    typo3-db:
        image: mariadb:latest
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: password
            MYSQL_USER: typo3
            MYSQL_PASSWORD: password
            MYSQL_DATABASE: typo3
            MYSQL_CHARACTER_SET: utf8
            MYSQL_COLLATION: utf8_unicode_ci
        volumes:
            - db_data:/var/lib/mysql
        networks:
            - typo3
    typo3-web:
        image: martinhelmich/typo3:10
        restart: always
        ports:
            - "8080:80"
        volumes:
            - typo3_data:/var/www/html
        networks:
            - typo3
    phpmyadmin:
        image: phpmyadmin:latest
        restart: always
        ports:
            - '8088:80'
        depends_on:
            - typo3-db
        environment:
            PMA_HOST: typo3-db
            MYSQL_ROOT_PASSWORD: password
        networks:
            - typo3
networks:
    typo3:
volumes:
    db_data:
    typo3_data:
```

**Erklärung der Konfiguration:**

- `version`: Die Version des Docker-Compose-Formats.
- `services`: Dieser Block beschreibt die verschiedenen Container, die Docker startet. In dieser Konfiguration gibt es drei Dienste: `typo3-db`, `typo3-web` und `phpmyadmin`.
- `typo3-web`:
- `image: martinhelmich/typo3:10`: Hier wird ein vorgefertigtes TYPO3-Docker-Image (Version 10) von Martin Helmich verwendet, das TYPO3 und seine Abhängigkeiten bereits enthält.
- `restart: always`: Der Container wird bei Fehlern oder nach einem Neustart des Hosts automatisch neu gestartet.
- `8080:80`: Der Port 80 im Container (Standard-HTTP-Port) wird an Port 8080 des Hosts weitergeleitet. Sie können TYPO3 also über `http://localhost:8080` aufrufen.
- `typo3_data: /var/www/html`: Das Volume `typo3_data` wird genutzt, um die TYPO3-Dateien zu speichern, damit Änderungen an den Dateien auch nach dem Neustart des Containers erhalten bleiben. Im Container liegen die TYPO3-Dateien standardmäßig unter `/var/www/html`.
- `phpmyadmin`:
- `image: phpmyadmin:latest:` Dies gibt an, dass der Container die neueste Version von phpMyAdmin verwendet, einem Webinterface zur Verwaltung von MySQL/MariaDB-Datenbanken.
- `restart: always`: Der Container wird bei Fehlern oder Neustarts automatisch neu gestartet.
- `8088:80`: Der Port 80 im phpMyAdmin-Container wird an Port 8088 des Hosts weitergeleitet. Sie können `phpMyAdmin` über `http://localhost:8088` erreichen.
- `depends_on`: `phpMyAdmin` wird erst nach dem Ausführen des `typo3-db`-Containers gestartet.
- `PMA_HOST`: Dies bezeichnet den Hostnamen der Datenbank; in diesem Fall `typo3-db`, da die Datenbank im gleichen Netzwerk liegt.
- `MYSQL_ROOT_PASSWORD`: Das Passwort für den Root-Benutzer der MariaDB-Datenbank.
- `networks`: Der `phpMyAdmin`-Container ist ebenfalls im Netzwerk `typo3`, was die Kommunikation mit der Datenbank ermöglicht.

### Schritt 3: Verzeichnis für TYPO3 anlegen

Erstellen Sie ein Verzeichnis für die TYPO3-Dateien, das mit dem in der `docker-compose.yml`-Datei angegebenen Pfad übereinstimmt:

```bash
mkdir typo3
```

### Schritt 4: Den Container starten

In Ihrem Projektverzeichnis führen Sie den folgenden Befehl aus, um die Container zu starten:

```bash
docker-compose up -d
```

Die Option `-d` startet die Container im Hintergrund (Detached Mode). Docker lädt die benötigten Images herunter und erstellt die Container.

### Schritt 5: Den Status der Container überprüfen

Um den **Status** Ihrer Container zu überprüfen, verwenden Sie:

```bash
docker-compose ps
```

Sie sollten eine Ausgabe sehen, die zeigt, dass sowohl der `typo3-web`- als auch der `typo3-db`-Container aktiv sind.

### Schritt 6: TYPO3 installieren

Öffnen Sie Ihren Webbrowser und gehen Sie zu `http://localhost:8080`. Sie sollten die TYPO3-Installationsseite sehen. Befolgen Sie die [Anleitung zur TYPO3-Installation](https://www.ionos.at/digitalguide/hosting/cms/typo3-installieren-anleitung/):

1. **Systemüberprüfung:** TYPO3 überprüft die Serverkonfiguration.
2. **Datenbankkonfiguration:** Geben Sie die entsprechenden Anmeldeinformationen für die Datenbankverbindung ein:
- Datenbanktyp: MySQL
- Datenbank-Host: db
- Datenbankname: typo3
- Datenbankbenutzer: typo3
- Datenbankpasswort: password
- Port: 3306
3. **Datenbank wählen:** Wählen Sie eine bestehende Datenbank oder legen Sie eine neue an.
4. **Admin-Zugang:** Erstellen Sie ein Administratorkonto, indem Sie die erforderlichen Informationen wie Benutzernamen und Passwort eingeben.
5. **Installieren:** Klicken Sie auf „Installieren“, um die Installation abzuschließen.

### Schritt 7: TYPO3 verwenden

Nach erfolgreicher Installation können Sie sich mit Ihren Administrator-Anmeldeinformationen anmelden. Rufen Sie `http://localhost:8080/typo3` auf und loggen Sie sich ein.

### Schritt 8: Container stoppen und entfernen

Wenn Sie die Container nicht mehr benötigen, können Sie diese mit folgendem Befehl stoppen:

```bash
docker-compose down
```

Dieser Befehl stoppt die Container und entfernt sie. Die Datenbankdaten bleiben jedoch erhalten, da sie in einem benannten Volume gespeichert sind.

### Schritt 9: Datenbank zurücksetzen (optional)

Wenn Sie die Datenbank zurücksetzen möchten, können Sie das Volume mit folgendem Befehl löschen:

```bash
docker volume rm typo3-docker_db_data
```

Tipp [TYPO3 ist ein CMS mit großer Funktionsvielfalt](https://www.ionos.at/digitalguide/hosting/cms/typo3-ein-cms-mit-grosser-funktionsvielfalt/). In unserem Ratgeber erfahren Sie, wie Sie eine [TYPO3-Webseite erstellen können](https://www.ionos.at/digitalguide/websites/webseiten-erstellen/typo3-website-erstellen/).


This is a markdown version of: [https://www.ionos.at/digitalguide/hosting/cms/typo3-docker/](https://www.ionos.at/digitalguide/hosting/cms/typo3-docker/) for AI/LLM consumption.