IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Docker Discussion :

dockerfile : commence avec python, mais comment savoir quels sont les dossiers de mon conteneur pour workdir


Sujet :

Docker

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Mai 2022
    Messages : 88
    Par défaut dockerfile : commence avec python, mais comment savoir quels sont les dossiers de mon conteneur pour workdir
    Bonjour
    je debute sur docker.
    j'ai ce simple dockerfile pour constuire une app ecrite en python

    je comprends qu'on part d'une image python comme j'ai une app en python.
    par contre, 2e ligne: on se place dans le répertoire /usr/src/app?

    Il sort d'où ce repertoire?
    je lance un conteneur avec python, comment je connais les dossiers qui existent dans mon conteneur?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    FROM python:3.8
    
    # set a directory for the app
    WORKDIR /usr/src/app
    
    # copy all the files to the container
    COPY . .
    
    # install dependencies
    RUN pip install --no-cache-dir -r requirements.txt
    
    # define the port number the container should expose
    EXPOSE 5000
    
    # run the command
    CMD ["python", "./app.py"]

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 375
    Par défaut
    WORKDIR est un peu l'équivalent de cd coté conteneur. Le répetoire en paramètre est un des répertoires du conteneur dans lequel la commande suivante COPY va copier les fichiers.


    je lance un conteneur avec python, comment je connais les dossiers qui existent dans mon conteneur?
    Pour aller voir le contenu du conteneur, il faut ouvrir un shell dedans et tu pourras alors de déplacer dans les différents dossiers avec les commandes systèmes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docker exec -it <nom ou id du conteneur> <nom du shell ex: bash ou sh>
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre confirmé
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Mai 2022
    Messages : 88
    Par défaut
    je crois comprendre mais je vais poser une serie de questions pour etre sure:

    donc un conteneur contient forcement un OS, meme si je lance pas d'OS dans ce conteneur?


    par exemple ici, j'ai juste lancé un conteneur avec python 3.8: est-ce j'ai un conteneur qui contient impliciitement l'OS ubuntu avec python 3.18, ou bien j'ai juste python 3.8, sans ubuntu?


    pour faire tourner mon script python, en général, il me faut une machine linux;
    donc si j'avais comencé mon dockerfile par
    , au lieu de : ca aurait marché aussi? Dans ce dernier cas, je visualise bien le dossier /usr/src/app dans ubuntu, mais je le visualise pas bien dans python 3.8

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 375
    Par défaut
    donc un conteneur contient forcement un OS, meme si je lance pas d'OS dans ce conteneur?
    c'est pas tout à fait ça. Si tu prends une machine virtuelle, elle va contenir et un OS complet. La conteneurisation, c'est un peu comme la virtualisation d'une application ou d'un service.
    Au niveau de l'OS hôte, ton conteneur est vu comme un processus au même titre qu'un hyperviseur pour la virtualisation est vu par son hôte comme un processus.

    L'image de ton conteneur va contenir une arborescence d'OS plus ou moins complète (ce qu'à besoin ce qui est conteneurisé, dans l’absolu ça pourrait être juste un exe avec les bibliothèques partagées dont il dépend). C'est une forme de cloisonnement. Le conteneur n'a pas accès au contenu de ton hôte (sauf à fournir un dossier présenté à celui-ci), il y a aussi une isolation réseau (idem tu fais correspondre un port de ton hôte vers un port du conteneur). Ton conteneur va utiliser le noyau de l'hôte, c'est aussi la grosse différence avec une machine virtuelle.

    par exemple ici, j'ai juste lancé un conteneur avec python 3.8: est-ce j'ai un conteneur qui contient impliciitement l'OS ubuntu avec python 3.18, ou bien j'ai juste python 3.8, sans ubuntu?
    Cela dépend de la façon dont est construit ton conteneur, il peut être basé sur n'importe quelle distribution Linux. Il est même pertinent de le construire sur un Linux très léger dédié à la conteneurisation tel qu'Alpine Linux.
    Imagines que tu utilises un conteneur contenant une application écrite en Python avec Django (framework web en Python si tu connais pas) par exemple.

    Le conteneur de cette application sera basé sur un conteneur contenant Django, basé lui-même sur un conteneur de base avec Python, basé lui-même sur un conteneur de base Linux. Si tu utilises un autre conteneur ayant besoin de Python, il va utiliser le conteneur Python déjà présent. Ca s’appuie sur git.

    Tu peux justement dans ton dockerfile lui donner une ou plusieurs dépendances

    pour faire tourner mon script python, en général, il me faut une machine linux;
    donc si j'avais comencé mon dockerfile par
    FROM ubuntu
    , au lieu de FROM python:3.8
    : ca aurait marché aussi? Dans ce dernier cas, je visualise bien le dossier /usr/src/app dans ubuntu, mais je le visualise pas bien dans python 3.8
    ça aurait marché si le conteneur nommé ubuntu, qui est donc une dépendance pour ton conteneur, contient Python.

    D'après le nom, on peut présumer que ton conteneur de base est un Ubuntu complet, qui contiendra donc Python.

    En utilisant python:3.8 comme base, tu t'assures d'avoir tout ce qu'il faut pour Python et surtout d'avoir la version 3.8, alors qu'avec un conteneur nommé ubuntu, on ne sait pas quel version sera dedans.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Membre confirmé
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Mai 2022
    Messages : 88
    Par défaut
    merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/02/2015, 20h03
  2. comment savoir qui supprime les dossiers du serveur
    Par hotTsauce dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 27/05/2008, 17h58
  3. savoir quels sont les plugins installés côté client
    Par cassy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/08/2007, 10h03
  4. Quels sont les effets sur la santé pour la consomation de café ?
    Par cladsam dans le forum Droit du travail
    Réponses: 11
    Dernier message: 28/06/2007, 12h59
  5. Réponses: 5
    Dernier message: 11/09/2006, 18h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo