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 [27/07/2017 08:11]
cyrille [Docker Compose]
informatique:docker [18/09/2021 10:49] (Version actuelle)
cyrille [nginx-proxy & acme-companion]
Ligne 88: Ligne 88:
 </code> </code>
  
 +if you are running short-term foreground processes, add ''--rm'' option.
 +
 +Voir [[https://docs.docker.com/engine/reference/run/|reference/run]]
 === docker start === === docker start ===
  
Ligne 152: Ligne 155:
 </code> </code>
  
 +=== docker cp ===
 +
 +Pour copier un fichier du container vers le host;
 +<code bash>
 +docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
 +</code>
 +
 +=== docker volume rm ===
 +
 +<code bash>
 +docker volume rm [OPTIONS] VOLUME [VOLUME...]
 +</code>
 ==== Dockerfile ==== ==== Dockerfile ====
  
Ligne 170: Ligne 185:
 https://github.com/docker/swarm/ https://github.com/docker/swarm/
  
-==== Compose ====+==== Compose (docker-composer) ====
  
 Docker Compose permet de créer et configurer un ensemble de conteneurs avec un fichier YAML. Docker Compose permet de créer et configurer un ensemble de conteneurs avec un fichier YAML.
Ligne 194: 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. 
 + 
 +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. 
 + 
 +  * Automated creation/renewal of Let's Encrypt (or other ACME CAs) certificates using acme.sh. 
 +  * Let's Encrypt / ACME domain validation through http-01 challenge only. 
 +  * Automated update and reload of nginx config on certificate creation/renewal. 
 +  * Support creation of Multi-Domain (SAN) Certificates. 
 +  * Creation of a Strong Diffie-Hellman Group at startup. 
 +  * 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>
  
-Le conteneur nginx-proxy peut-être démarré après les virtualhosts conteneurs. C'est cool pour le boot du système ;-) 
 ==== webdevops ==== ==== webdevops ====
  
informatique/docker.1501135891.txt.gz · Dernière modification: 27/07/2017 08:11 de cyrille