Aller au contenu

[TUTO] Docker : Introduction


.Shad.

Messages recommandés

@CyberFr Alors je viens de regarder et je n'ai pas le aux-adress dans mon script de création du réseau macvlan :

docker network create -d macvlan \
--subnet=192.168.2.0/24 \
--ip-range=192.168.2.208/28 \
--gateway=192.168.2.1 \
-o parent=eth0 \
macvlan-network

 

Pour l'adresse IP du conteneur, montre le contenu de ton docker-compose.yml, car c'est là que doit se trouver l'adresse IP, car il faut spécifier dans ce fichier que le réseau où doit se trouver le conteneur est le réseau macvlan.

Regarde les fichiers que je t'ai donné pour adguard home :

Tu verras dans le service adguardhome_macvlan, il y a une sous-section networks dans laquelle du précise quelle IPv4 tu veux pour le conteneur (il faut qu'elle soit libre hein 😉 )

Et à la fin du fichier, tu as la section réseau qui précise que le réseau que doit rejoindre le conteneur est un réseau externe déjà créé, ton réseau macvlan.

---
version: "2.4"
services:
  adguardhome_macvlan:
    image: adguard/adguardhome:latest   # https://github.com/AdguardTeam/AdGuardHome
                                        # https://github.com/AdguardTeam/AdGuardHome/wiki/Docker
    container_name: adguardhome_macvlan
    
    hostname: AdGuard-Home--DS920Plus   # Permet d'avoir un nom pour le conteneur dans AdGuard lui même (sinon c'est une chaine aléatoire)
    
    environment:
      - PUID=1010
      - PGID=100
      - TZ=Europe/Paris
      - LANG=fr_FR.UTF8
      - LANGUAGE=fr_FR.UTF8
    
    # ---------------------------------------------------------------------------------
    # Le label ci-dessous permet à Watchtower de faire les mises à jour automatiquement
    # Cela peut-être supprimé si Watchtower n'est pas utilisé.
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    # ---------------------------------------------------------------------------------
    # Le label ci-dessous sert à AutoHeal pour redémarrer le conteneur s'il devient Unhealthy...
    #  - "AUTOHEAL_CONTAINER_LABEL=autoheal"
    # ---------------------------------------------------------------------------------
    volumes:
      - "/volume1/docker/adguardhome_macvlan/work:/opt/adguardhome/work"
      - "/volume1/docker/adguardhome_macvlan/conf:/opt/adguardhome/conf" 
    
    # ports:
    #   -  "953:53"
    #   -  "967:67/udp"
    #   -  "968:68"
    #   -  "8080:80/tcp"
    #   -  "9443:443/tcp"
    #   -  "9853:853/tcp"
    #   -  "3030:3000/tcp"
    
    networks:
      macvlan-network:
        ipv4_address: 192.168.2.210     # Mettre ici l'IP macvlan définie dans les scripts
    
    restart: unless-stopped
    
    healthcheck:
      test: "/bin/netstat -pant | /bin/grep 53"
      interval: 45s
      timeout: 30s
      retries: 3
      
networks:
  macvlan-network:        # Ce réseau devra bien entendu être créé avant avec le script
    external: true

 

Lien vers le commentaire
Partager sur d’autres sites

@CyberFr

docker network create | Docker Documentation

aux-address est utile lorsque tu définis une ip-range pour un réseau donné et qu'il y a déjà des IP prises dans cette plage.
Ca permet d'empêcher d'attribuer ces IP là.

Pour le port 8080, je pense que tu n'as pas compris.
Quand tu es en bridge, tu dois translater le port car dans le cas de DSM le port 80 est déjà pris par Webstation. C'est pour ça qu'on translate le port 80 du conteneur sur un autre port (par exemple le 8080).

Ici, tu es en macvlan, donc ton conteneur est comme une machine physique indépendante, et tous ses ports par défaut son accessibles. Heimdall expose les ports 80 et 443. Essaie donc de taper http://192.168.1.104:80 (car si tu regardes bien ton impression d'écran avec l'inspection du réseau, tu vois que heimdall est sur l'IP 104 et pas 105).

Lien vers le commentaire
Partager sur d’autres sites

il y a 7 minutes, MilesTEG1 a dit :

Pour l'adresse IP du conteneur, montre le contenu de ton docker-compose.yml, car c'est là que doit se trouver l'adresse IP, car il faut spécifier dans ce fichier que le réseau où doit se trouver le conteneur est le réseau macvlan.

Je n'utilise pas ce fichier, il faut disposer de Docker Compose je suppose ?

il y a 6 minutes, .Shad. a dit :

Pour le port 8080, je pense que tu n'as pas compris.
Quand tu es en bridge, tu dois translater le port car dans le cas de DSM le port 80 est déjà pris par Webstation. C'est pour ça qu'on translate le port 80 du conteneur sur un autre port (par exemple le 8080).

C'est noté.

il y a 7 minutes, .Shad. a dit :

Essaie donc de taper http://192.168.1.104:80 (car si tu regardes bien ton impression d'écran avec l'inspection du réseau, tu vois que heimdall est sur l'IP 104 et pas 105).

Bingo ! J'accède bien au conteneur.

Je n'ai pas vu que heimdall était sur le port 104, je vais regarder plus attentivement. Il sera toujours à cette adresse ou ça risque de changer à l'occasion d'un redémarrage ?

Lien vers le commentaire
Partager sur d’autres sites

il y a 8 minutes, CyberFr a dit :

Je n'utilise pas ce fichier, il faut disposer de Docker Compose je suppose ?

Haaa ! Mais du coup tu installes comment ? Via l'interface DSM ?

 

il y a 9 minutes, CyberFr a dit :

Je n'ai pas vu que heimdall était sur le port 104

Sur l'IP en .104
Le port de connexion c'est autre chose 🤣

Lien vers le commentaire
Partager sur d’autres sites

@CyberFr J'ai regardé l'interface Docker DSM, ça faisait plus d'un que je n'avais pas regardé, il y a quelques belles améliorations pour la création de conteneurs, leur assistant est bien foutu.

Néanmoins, tu ne pourras pas attribuer une IP à un conteneur dans un réseau macvlan par l'intermédiaire de l'interface graphique j'ai l'impression. Pour ça il faut passer par la ligne de commande ou par docker-compose.

Lien vers le commentaire
Partager sur d’autres sites

il y a 23 minutes, .Shad. a dit :

Pour ça il faut passer par la ligne de commande ou par docker-compose.

Ça m'intéresse. Comment fait-on par la ligne de commande ?

Sinon je viens de découvrir que Docker-compose est installé en même temps que Docker sur les NAS Synology ce qui évite une installation supplémentaire. Si je peux éviter de me plonger dans Docker-compose dans un premier temps, cela me fera gagner quelques mois 🙂

Lien vers le commentaire
Partager sur d’autres sites

@CyberFr

Je te conseille très vivement d’investir un chouilla de temps à l’installation de Portainer (voir un des tuto de notre ami @.Shad.). Et là tu pourras utiliser les fichiers docker-compose.yml avec Portainer , ce sera autrement plus sympa que la ligne de commande 😝

moi je ne passe que par là (sauf script particulier à lancer).

 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, bliz a dit :

Dans le fichier yml, comment fait on pour forcer à utiliser le host ?

Pour le réseau bridge ou host :

network_mode: bridge
network_mode: host

Par exemple dans un fichier compose :

version: "2.1"
services:

   exemple:
      image: coucou/exemple
      container_name: exemple-container
      network_mode: host
      environment:
         - ...

Pour un réseau bridge personnalisé, s'il est lié au fichier compose (interne, pas externe) :

version: "2.1"
services:

   exemple:
      image: coucou/exemple
      container_name: exemple-container
      networks:
         - net-exemple
      environment:
         - ...

networks:

   net-exemple:

Et s'il est externe :

version: "2.1"
services:

   exemple:
      image: coucou/exemple
      container_name: exemple-container
      networks:
         - net-exemple
      environment:
         - ...

networks:

   net-exemple:
      external: true
Modifié par .Shad.
Lien vers le commentaire
Partager sur d’autres sites

Si vous utilisez Portainer, il a tendance à ajouter le nom du conteneur au nom du réseau, sauf si on précise le nom du réseau comme ceci

version: "2.1"
services:

   exemple:
      image: coucou/exemple
      container_name: exemple-container
      networks:
         - mon_reseau
      environment:
         - ...

networks:
  mon_reseau:
    external:
      name: mon_reseau

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 8 minutes, bliz a dit :

Merci pour la réponse, en tout cas, pour l'avantage, c'est l'utilisation du cpu qui est moindre, l'inconvénient d'après ce que j'ai lu, c'est qu'il ne passe pas par le pafeu du nas

Tu as une source pour le coup du parefeu ?

car ça m'étonnerait que ce soit vraiment le cas.
@.Shad. ?

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...
Il y a 2 heures, _DR64_ a dit :

Bonjour !
Quelqu'un pourrait m'expliquer comment s'utilise un dockerfile svp ?
Le docker-compose pas de soucis, docker en lui même pas de soucis mais le dockerfile (et portainer) là j'avoue être à la masse.
Merci!

Je n’ai jamais réussi à utiliser le dockerfile pour le Dashboard de Crowdsec via portainer… c’est un peu la loose.

mais de ce que j’ai compris, le dockerfile te permet de construire ton image personnalisée à partir des sources.

Lien vers le commentaire
Partager sur d’autres sites

Ton image c'est une lasagne, le Dockerfile c'est la recette, tu dis quoi mettre à chaque couche pour la construire.
Généralement, le principe c'est de partir d'une base OS ultra-légère, d'y ajouter les paquets dont tu as besoin via apt-get par exemple, de supprimer le cache une fois installés, et de configurer ton application selon ton besoin.

J'ai très peu pratiqué, mais on trouve assez facilement des tutos pas-à-pas sur Internet pour créer sa propre image Docker. Je suis au boulot, je ne peux pas consulter mes favoris mais je regarde ce soir si j'ai encore quelques liens dans Chrome.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.