Installation d'un home-server Docker
_erreip_
Messages postés
195
Date d'inscription
Statut
Membre
Dernière intervention
-
_erreip_ Messages postés 195 Date d'inscription Statut Membre Dernière intervention -
_erreip_ Messages postés 195 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je ne sais pas trop ou poser ma question alors je tente ici...
J'essaie d'installer chez moi un serveur multifonctions basé sur docker.
Le problème, c'est que je ne parviens pas à le faire fonctionner. Lorsque j'essaie de me connecter dessus avec un navigateur (sur l'interface phpMyAdmin par exemple, j'obtiens l'erreur :
Je ne parviens pas à trouver ce qui génère l'erreur (si c'est ma config docker (nginx), ma config Freebox (ports), ou ma config DNS).
Mon docker-compose.yml est le suivant :
Pour la configuration Freebox, j'ai ajouté les redirections des ports 22, 80, et 443 (protocole tcp pour les trois).
La connexion ssh (port 22) fonctionne très bien depuis l'extérieur (ssh user@home.##########.fr).
Enfin, pour la config DNS, je suis allé sur le cPanel o2switch (hébergeur ou j'ai acheté mon ndd), dans Zone Editor, et j'ai ajouté une ligne :
- Nom : *.##########.fr
- TTL : 14400
- Classe : IN
- Type : A
- Enregistrement : Adresse IPv4 de la Freebox (trouvée dans Freebox OS > Etat de la Freebox > Etat internet)
Pour la plupart de ces configurations, je ne suis pas du tout sûr de moi étant donné que c'est la première fois que j'installe un serveur et que je ne connais pas du tout Docker.
Je pense avoir donné toutes les infos nécessaires, n'hésitez pas si il manque quelque chose.
J'espère que l'on pourra m'aider.
Cordialement,
Je ne sais pas trop ou poser ma question alors je tente ici...
J'essaie d'installer chez moi un serveur multifonctions basé sur docker.
Le problème, c'est que je ne parviens pas à le faire fonctionner. Lorsque j'essaie de me connecter dessus avec un navigateur (sur l'interface phpMyAdmin par exemple, j'obtiens l'erreur :
Ce site est inaccessible
phpmyadmin.##########.fr n’autorise pas la connexion.
ERR_CONNECTION_REFUSED
Je ne parviens pas à trouver ce qui génère l'erreur (si c'est ma config docker (nginx), ma config Freebox (ports), ou ma config DNS).
Mon docker-compose.yml est le suivant :
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=8080
- LETSENCRYPT_HOST=subsonic.##########.fr
- LETSENCRYPT_EMAIL=contact@##########.fr
- TZ=Europe/Paris
- MAX_MEM=1024
- HTTP_PORT=8080
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
networks:
default:
external:
name: dockerlan
Pour la configuration Freebox, j'ai ajouté les redirections des ports 22, 80, et 443 (protocole tcp pour les trois).
La connexion ssh (port 22) fonctionne très bien depuis l'extérieur (ssh user@home.##########.fr).
Enfin, pour la config DNS, je suis allé sur le cPanel o2switch (hébergeur ou j'ai acheté mon ndd), dans Zone Editor, et j'ai ajouté une ligne :
- Nom : *.##########.fr
- TTL : 14400
- Classe : IN
- Type : A
- Enregistrement : Adresse IPv4 de la Freebox (trouvée dans Freebox OS > Etat de la Freebox > Etat internet)
Pour la plupart de ces configurations, je ne suis pas du tout sûr de moi étant donné que c'est la première fois que j'installe un serveur et que je ne connais pas du tout Docker.
Je pense avoir donné toutes les infos nécessaires, n'hésitez pas si il manque quelque chose.
J'espère que l'on pourra m'aider.
Cordialement,
A voir également:
- Installation d'un home-server Docker
- Mailstore home - Télécharger - Mail
- Cybera server - Télécharger - Divers Réseau & Wi-Fi
- Ps3 media server - Télécharger - Divers Réseau & Wi-Fi
- Dev home. - Télécharger - Développement
- Everest home edition - Télécharger - Informations & Diagnostic
3 réponses
Bonjour,
Quelques questions pour y voir plus clair :
Bonne chance
Quelques questions pour y voir plus clair :
- Que donne
ping -c2 phpmyadmin.##########.fr
? - Arrives-tu afficher la page par défaut de ton serveur web ? Si ce n'est pas le cas, est-ce que nginx est bien lancé ? Tu peux vérifier avec
sudo service nginx status
. - Est-ce que selon nmap, le port 80 est ouvert ? Tu peux vérifier avec
nmap -p 80 phpmyadmin.##########.fr
.
Bonne chance
Quelle commande lances-tu ? Si le paquet nginx-common est bien installé, il devrait y avoir un script
Du coup pour le lancer il suffit de passer par la commande service, comme expliqué ici :
Si c'est comme apache, il devrait alors y avoir un vhost pré-configuré et ta machine devrait alors écouter sur le port 80 :
Depuis le client ou le serveur tu devrais alors pouvoir afficher la page http://ip_du_serveur. Une fois ces étapes validées, on peut commencer à voir si le module php est installé, configuré, et chargé, et donc vérifier si phpldapadmin a une chance de marcher.
Sinon, et bien... utilise apache2 :-)
Bonne chance
/etc/init.d/nginxsur ta machine :
(mando@aldur) (~) $ apt-file search nginx | grep init.d
nginx-common: /etc/init.d/nginx
Du coup pour le lancer il suffit de passer par la commande service, comme expliqué ici :
service nginx start
Si c'est comme apache, il devrait alors y avoir un vhost pré-configuré et ta machine devrait alors écouter sur le port 80 :
netstat -ntlp
Depuis le client ou le serveur tu devrais alors pouvoir afficher la page http://ip_du_serveur. Une fois ces étapes validées, on peut commencer à voir si le module php est installé, configuré, et chargé, et donc vérifier si phpldapadmin a une chance de marcher.
Sinon, et bien... utilise apache2 :-)
Bonne chance
J'avais essayé de lancer le service avec
Je confirme que
J'insiste peut-être mais je rappelle que nginx est un container docker, c'est un environnement particulier de virtualisation. Je ne suis donc pas sur que les procédures habituelles fonctionneront...
Cordialement,
sudo service nginx start.
Je confirme que
/etc/init.d/nginxn'existe pas.
J'insiste peut-être mais je rappelle que nginx est un container docker, c'est un environnement particulier de virtualisation. Je ne suis donc pas sur que les procédures habituelles fonctionneront...
Cordialement,
dpkg -l | grep nginxne renvoie rien.
Pour
/etc/apt/sources.list, il contient :
#
# deb cdrom:[Debian GNU/Linux 8.7.1 _Jessie_ - Official amd64 NETINST Binary-1 $
#deb cdrom:[Debian GNU/Linux 8.7.1 _Jessie_ - Official amd64 NETINST Binary-1 2$
deb http://ftp.fr.debian.org/debian/ jessie main
deb-src http://ftp.fr.debian.org/debian/ jessie main
deb https://www.debian.org/security/ jessie/updates main
deb-src https://www.debian.org/security/ jessie/updates main
# jessie-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ jessie-updates main
deb-src http://ftp.fr.debian.org/debian/ jessie-updates main
Donc comme prévu les paquets
https://packages.debian.org/hu/jessie/nginx
https://packages.debian.org/hu/jessie/nginx-common
Du coup, en root :
Bonne chance
nginxet
nginx-commonne sont pas installés ce qui explique tout. Ils semblent pourtant exister :
https://packages.debian.org/hu/jessie/nginx
https://packages.debian.org/hu/jessie/nginx-common
Du coup, en root :
apt-get update apt-get upgrade apt-get install nginx nginx-common
Bonne chance
En regardant la doc (https://hub.docker.com/_/nginx/ j'ai trouvé quelque chose qui semble interessant :
"Exposing external port
Then you can hit http://localhost:8080 or http://host-ip:8080 in your browser."
Je pense que c'est seulement ça qu'il me manque. J'ai juste à comprendre cette ligne...
Edit : En fait non, cette ligne correspond à ce que fait mon docker-compose
"Exposing external port
$ docker run --name some-nginx -d -p 8080:80 some-content-nginx
Then you can hit http://localhost:8080 or http://host-ip:8080 in your browser."
Je pense que c'est seulement ça qu'il me manque. J'ai juste à comprendre cette ligne...
Edit : En fait non, cette ligne correspond à ce que fait mon docker-compose
Then you can hit http://localhost:8080 or http://host-ip:8080 in your browser."
Ceci signifie qu'au niveau de la machine hôte (celle depuis laquelle tu as lancé la commande
Ce message t'indique la syntaxe à utiliser.
Tu peux te référer à ce tutoriel qui reprend comment installer docker et nginx, puis comment faire la redirection de port.
Bonne chance
Ceci signifie qu'au niveau de la machine hôte (celle depuis laquelle tu as lancé la commande
docker), le port 8080 peut être redirigé vers le port 80 (le port par défaut pour http) d'une machine docker de ton choix.
Ce message t'indique la syntaxe à utiliser.
Tu peux te référer à ce tutoriel qui reprend comment installer docker et nginx, puis comment faire la redirection de port.
Bonne chance
- Le ping fonctionne bien, 0% de perte
- Le service n'est apparement pas lancé :
- Le port semble fermé :
Du coup, je dois lancer le service avec ? Je devrai alors faire ce qu'il faut pour que le service se lance au démarrage ?
Pour le port, c'est le service nginx qui l'ouvrira ou je dois le faire aussi ?
Encore merci.
Cordialement,
Oui.
Je devrai alors faire ce qu'il faut pour que le service se lance au démarrage ?
Normalement il est sensé se lancer tout seul au démarrage.
Pour le port, c'est le service nginx qui l'ouvrira ou je dois le faire aussi ?
nginx écoutera sur le port 80, ce qui devrait le rendre visible depuis le client, à moins qu'un pare-feu bloque quelque chose (auquel cas, il faudra ouvrir le port 80 sur ce pare-feu).
Bonne chance
Cordialement,