Outils pour utilisateurs

Outils du site


informatique:docker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:docker [11/09/2021 17:49]
cyrille [nginx-proxy] nginx-proxy/acme-companion
informatique:docker [18/09/2021 10:49] (Version actuelle)
cyrille [nginx-proxy & acme-companion]
Ligne 209: Ligne 209:
 ===== Images Docker ===== ===== Images Docker =====
  
-==== nginx-proxy ====+==== nginx-proxy & acme-companion ====
  
-  * https://hub.docker.com/r/jwilder/nginx-proxy/ +  * https://github.com/nginx-proxy/nginx-proxy <del>https://github.com/jwilder/nginx-proxy</del>  
-  * https://github.com/jwilder/nginx-proxy+  * https://github.com/nginx-proxy/acme-companion
  
-Le container [[https://hub.docker.com/r/jwilder/nginx-proxy/|jwilder/nginx-proxy]] sert de reverse proxy aux containers Dockers fournissant des services web. +C'est le reverse proxy pour d'autres containers fournissant des services web. Accompagné de ''acme-companion'' on obtient le HTTPS LetsEncrypt automatique.
- +
-==== nginx-proxy/acme-companion ==== +
- +
-https://github.com/nginx-proxy/acme-companion+
  
 acme-companion is a lightweight companion container for nginx-proxy. It handles the automated creation, renewal and use of LetsEncrypt SSL certificates for proxied Docker containers through the ACME protocol. acme-companion is a lightweight companion container for nginx-proxy. It handles the automated creation, renewal and use of LetsEncrypt SSL certificates for proxied Docker containers through the ACME protocol.
Ligne 228: Ligne 224:
   * Creation of a Strong Diffie-Hellman Group at startup.   * Creation of a Strong Diffie-Hellman Group at startup.
   * Work with all versions of docker.   * Work with all versions of docker.
 +
 +{{ https://raw.githubusercontent.com/nginx-proxy/acme-companion/main/schema.png?460 }}
 +
 +Les 2 dans un docker-compose et le tour est joué:
 +<code yaml>
 +volumes:
 +  conf:
 +  vhost:
 +  html:
 +  dhparam:
 +  certs:
 +  acme:
 +
 +services:
 +  nginx-proxy:
 +    image: nginxproxy/nginx-proxy
 +    container_name: nginx-proxy
 +    ports:
 +      - "80:80"
 +      - "443:443"
 +    volumes:
 +      - conf:/etc/nginx/conf.d
 +      - vhost:/etc/nginx/vhost.d
 +      - html:/usr/share/nginx/html
 +      - dhparam:/etc/nginx/dhparam
 +      - certs:/etc/nginx/certs:ro
 +      - /var/run/docker.sock:/tmp/docker.sock:ro
 +    network_mode: bridge
 +  acme-companion:
 +    image: nginxproxy/acme-companion
 +    container_name: nginx-proxy-acme
 +    volumes_from:
 +      - nginx-proxy
 +    volumes:
 +      - certs:/etc/nginx/certs:rw
 +      - acme:/etc/acme.sh
 +      - /var/run/docker.sock:/var/run/docker.sock:ro
 +    network_mode: bridge
 +</code>
 +
 +Il suffit ensuite de lancer des containers avec les ENV qui vont bien:
 +<code bash>
 +docker run -d -p 8000:8000 --name dokuwiki -v $(pwd)/data:/data \
 + --env "VIRTUAL_HOST=backup-01.comptoir.net" \
 + --env "VIRTUAL_PORT=8000" \
 + --env "LETSENCRYPT_HOST=toto.comptoir.net" \
 + --env "LETSENCRYPT_EMAIL=toto@comptoir.net" \
 + crazymax/dokuwiki:latest
 +</code>
 +
 +Et voilà le container ''dokuwiki'' est automatiquement prit en charge par ''nginx-proxy'' et sont certificat https généré par ''acme-companion'' :-)
 +
 +<WRAP center round important 60%>
 +Il reste un mauvais point: le container ''dokuwiki'' est accessible (LISTEN) sur le ''host'', il faut donc activer et configurer un firewall.\\ J'ai essayé avec des ''network'' mais ne suis pas arrivé à isoler les container vhosts.
 +</WRAP>
 +
 +On le voit sur le port ''32771'' :
 +<code>
 +# netstat -tanp | grep LISTEN
 +tcp        0      0 0.0.0.0:30001           0.0.0.0:              LISTEN      670/sshd            
 +tcp        0      0 127.0.0.1:25            0.0.0.0:              LISTEN      937/exim4           
 +tcp6            0 :::32771                :::*                    LISTEN      22408/docker-proxy  
 +tcp6            0 :::80                   :::                   LISTEN      21823/docker-proxy  
 +tcp6            0 :::30001                :::*                    LISTEN      670/sshd            
 +tcp6            0 ::1:25                  :::*                    LISTEN      937/exim4           
 +tcp6            0 :::443                  :::*                    LISTEN      21811/docker-proxy  
 +</code>
  
 ==== webdevops ==== ==== webdevops ====
informatique/docker.1631375363.txt.gz · Dernière modification: 11/09/2021 17:49 de cyrille