Impossible de faire fonctionner mon serveur (docker-compose, nginx..)
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:
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.