Flux d'exécution de votre propre application Web Python avec docker
Idéalement, toutes les images du docker doivent être écrites dans un fichier docker, mais essayez de les créer avec des images définies manuellement.
docker run -t -i centos /bin/bash
L'option -i -t et / bin / bash servent à se connecter au conteneur démarré avec une entrée standard. Basé sur des centos.
Mettez-le dans le conteneur centos avec cette commande
Confirmez que python est déjà installé avec la commande python -V dans le conteneur.
Créez un exemple d'application Web n'importe où dans le conteneur
vi sampleweb.py
import SimpleHTTPServer
SimpleHTTPServer.test()
Vous pouvez générer le conteneur en cours d'exécution sous la forme d'une image docker avec la commande docker commit.
docker commit [ID de conteneur modifié] [Nom du conteneur à enregistrer]
Exemple)
docker commit aeijdire845 simpleweb
J'étais accro ici. Dans le cas de Linux, si vous écrivez une commande dans rc.local, il semble qu'elle exécutera la commande prévue au démarrage, mais elle ne sera pas reflétée dans le conteneur. Il est nécessaire de décrire dans ENTRYPOINT (ou CMD) de dockerfile. À ce stade, j'ai pensé que je devrais recommencer avec le fichier docker, mais je n'ai besoin que d'ajouter un POINT D'ENTREE basé sur les images créées jusqu'à 3.
Exemple)
from simpleweb
ENTRYPOINT python /home/hoge/simpleweb.py
Créer une image avec une construction de docker basée sur le fichier docker créé en continu
docker build -t [Nom de l'image]:[Nom de la balise] [Chemin du répertoire avec Dockerfile]
Exemple)
docker build -t simpleweb2:latest ./
Puisqu'il s'agit d'une application Web, il est nécessaire de définir des options et de la démarrer afin que l'application Web dans le conteneur soit accessible de l'extérieur.
docker run -p 80:8000 simpleweb2
Avec l'option -p, spécifiez le transfert de port dans [External Port]: [Port in Container]. Dans l'exemple, si vous accédez avec 80 de l'extérieur, vous serez connecté à 8000 à l'intérieur du conteneur. L'application Web créée en 2 attend à 8000, alors définissez-la comme ceci.
Si vous y accédez en spécifiant http: // localhost / s'il provient de local, ou s'il existe une adresse IP externe, la liste du répertoire sera renvoyée.
Recommended Posts