Bonjour à tous,

Je ne parvient pas à faire fonctionner mon serveur sous docker et découvrant ce système, du haut de mes minces compétences en administration réseau, je ne parvient pas à trouver de solution, ni même les raisons à ce dysfonctionnement.
Ne sachant pas vraiment d'où vient mon problème, il est possible que je ne soit pas dans la bonne section. Veuillez m'en excuser si tel est le cas.
Toute mes excuses également pour le titre du topic qui n'est pas très précis.

Contexte :
Je me suis assemblé un serveur sous Debian sur lequel j'ai installé Docker (et docker-compose) pour pouvoir bénéficier du système de containers. J'aimerais continuer sur cette piste, aussi, je ne suis pour l'instant pas intéressé par les "solutions" consistant à faire sans Docker. Merci de votre compréhension sur ce point.

Docker-compose
Voici mon fichier de configuration docker-compose (j'ai bien-sûr censuré toutes les informations sensibles : mots de passes, nom de domaine...) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
version: '2'
services:
  # Serveur Web : NGINX
  nginx:
    container_name: nginx
    image: nginx
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "10"
    ports:
      - "80:80"
      - "443:443"
    restart: always
    volumes:
      - /data/Config/nginx/certs:/etc/nginx/certs
      - /data/Config/nginx/vhost.d:/etc/nginx/vhost.d
      - /data/Config/nginx/conf.d:/etc/nginx/conf.d
      - /data/Config/nginx/html:/usr/share/nginx/html

  # Génère les fichiers de config à NGINX
  docker-gen:
    container_name: nginx-generator
    image: jwilder/docker-gen
    restart: unless-stopped
    command: -notify-sighup nginx -watch /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "10"
    volumes_from:
      - nginx
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock
      - /data/Config/nginx/nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl

  # Gère Let's Encrypt avec NGYNX
  nginx-letsencrypt:
    container_name: nginx-letsencrypt
    image: alastaircoote/docker-letsencrypt-nginx-proxy-companion
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "10"
    volumes_from:
      - nginx
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro

  # Bases de données : MySQL
  mysql:
    container_name: mysql
    image: mysql:latest
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=***
    volumes:
      - /data/mysql:/var/lib/mysql
  
  # Bases de données : PHPMyAdmin
  phpmyadmin:
    container_name: phpmyadmin
    image: phpmyadmin/phpmyadmin
    restart: unless-stopped
    environment:
      - PMA_HOST=mysql
      - VIRTUAL_HOST=phpmyadmin.***.fr
      - LETSENCRYPT_HOST=phpmyadmin.***.fr
      - LETSENCRYPT_EMAIL=contact@***.fr
  
  # OwnCloud : Cloud libre
  owncloud:
    container_name: owncloud
    image: owncloud:latest
    restart: unless-stopped
    environment:
      - VIRTUAL_HOST=cloud.***.fr
      - LETSENCRYPT_HOST=cloud.***.fr
      - LETSENCRYPT_EMAIL=contact@***.fr
    volumes:
      - /data/Config/owncloud:/var/www/html/config
      - /data/Config/owncloud:/var/www/html/data
      - /data:/home
  
  # Subsonic : Streaming audio
  subsonic:
    container_name: subsonic
    image: hurricane/subsonic
    restart: unless-stopped
    environment:
      - VIRTUAL_HOST=subsonic.***.fr
      - VIRTUAL_PORT=80
      - LETSENCRYPT_HOST=subsonic.***.fr
      - LETSENCRYPT_EMAIL=contact@***.fr
      - TZ=Europe/Paris
      - MAX_MEM=1024
      - HTTP_PORT=80
    volumes:
      - /data/Config/subsonic:/subsonic
      - /data/Musique:/music

  # jDownloader : Gestionnaire de téléchargements directs (https://github.com/jlesage/docker-jdownloader-2#docker-compose-file)
  jdownloader-2:
    container_name: jdownloader-2
    image: jlesage/jdownloader-2
    restart: unless-stopped
    ports:
      - "5800:5800"
    environment:
    - VIRTUAL_HOST=jdownloader.***.fr
    - VIRTUAL_PORT=5800
    - LETSENCRYPT_HOST=jdownloader.***.fr
    - LETSENCRYPT_EMAIL=contact@***.fr
    volumes:
      - /data/Config/jdownloader-2:/config:rw
      - /data/Telechargements:/output:rw
Une fois le fichier modifié, le lance un docker-compose up -d depuis le répertoire dans lequel se situe le fichier.

Connexion
Mon serveur est relié à internet via une Freebox dont l'administration est possible en WAN mais sur un port différent du 80.
J'ai configuré les redirections des ports 22, 80, et 443, toutes en TCP, sur les ports correspondant de mon serveur.
J'accède à mon serveur en WAN avec SSH sans problème.

Problème :
Lorsque j'essaie de me connecter par exemple sur subsonic.***.fr (testé sur les autres url aussi: cloud, phpmyadmin...), mon navigateur me dit que le site n'autorise pas la connexion.

Pistes :
  • Je dirais que la redirection de port fonctionne puisque SSH fonctionne (port 22), mais je ne connais aucun moyen de vérifier ça de façon fiable.
  • N'y a-t-il pas besoin d'ouvrir les ports sur le serveur ? Je crois qu'il y a quelque chose avec iptables mais je ne sais pas trop... Docker ne gère-t-il pas ça tout seul avec les ports fournis à nginx dans le docker-compose ?


J'espère avoir fourni suffisamment d'informations.
Dans l'espoir de finir par trouver une solution, je vous remercie pour votre aide précieuse.