Maison >développement back-end >Tutoriel Python >Comment transmettre des arguments de ligne de commande au conteneur Python Docker ?

Comment transmettre des arguments de ligne de commande au conteneur Python Docker ?

WBOY
WBOYavant
2023-09-08 13:29:051079parcourir

如何将命令行参数传递给Python Docker容器?

Avant de comprendre les paramètres du conteneur Docker, nous devons comprendre les paramètres de ligne de commande Python et la manière dont les développeurs y accèdent. Les arguments de ligne de commande sont très utiles lorsque l’on souhaite contrôler un script Python en dehors du programme.

Accéder aux arguments de ligne de commande aux scripts Python

Étape 1 : Créer un script python main.py

Exemple

# sys will allow us to access the passed arguments
import sys

# sys.argv[0] access the first argument passed that is the python script name
print("\nFile or Script Name is :", sys.argv[0])

# print arguments other than the file name
print("\nArguments passed:", end = " ")
for i in range(1, len(sys.argv)):
   print(sys.argv[i], end = " ")

# Lowercase operation on the passed arguments
for i in range(1, len(sys.argv)):
   print(sys.argv[i].lower(), end = " ")

Étape 2 : Exécuter sur le terminal avec les paramètres

#python3 main.py HELLO THIS IS TUTORIALSPOINT

Sortie

File or Script Name is : main.py
Arguments passed: HELLO THIS IS TUTORIALSPOINT
hello this is tutorialspoint

Transmettez ces paramètres au conteneur Docker

Nous avons différentes manières de transmettre les arguments de ligne de commande aux conteneurs Docker. Certains d’entre eux sont mentionnés étape par étape ci-dessous.

Utilisez les paramètres Docker avec ENTRYPOINT

L'astuce consiste à utiliser un point d'entrée avec un fichier docker et à rediriger ce point d'entrée vers le fichier python pour exécution. Après cela, transmettez simplement les paramètres python requis lors de l'exécution du conteneur Docker.

Étape 1 : Créer un fichier Docker

Exemple

FROM python
WORKDIR /app
COPY . /app/
ENTRYPOINT ["python3", "main.py"]

Étape 2 : Construire l'image

Exemple

#docker build -t arg_py .

Sortie

Sending build context to Docker daemon 8.192kB
Step 1/4 : FROM python
---> fa9122485d1d
Step 2/4 : WORKDIR /app
---> Using cache
---> 9e9708fe1d43
Step 3/4 : COPY . /app/
---> aea9ecf32f55
Step 4/4 : ENTRYPOINT ["python3", "main.py"]
---> Running in 864440fa7988
Removing intermediate container 864440fa7988
---> d6e31e5606b8
Successfully built d6e31e5606b8
Successfully tagged arg_py:latest

Étape 3 : Exécutez le conteneur

#docker run --name mycontainer arg_py HELLO FROM TUTORIALSPOINT

Exemple

File or Script Name is : main.py
Arguments passed: HELLO FROM TUTORIALSPOINT
hello from tutorialspoint

Utilisez les variables d'environnement Docker via ENTRYPOINT

La commande Docker run nous offre des fonctionnalités extraordinaires, dont les variables d'environnement. Ici, nous utiliserons ces variables d'environnement pour transmettre des données au script Python interne sur le conteneur Docker.

Étape 1 : Créez un script python pour accéder aux variables d'environnement

La création du script python cette fois sera très similaire au premier exemple. Au lieu d'importer le module "sys", nous importerons le module "os" pour obtenir les variables d'environnement. Créez un fichier python et collez le code suivant.

Exemple

import os

#declare some variables for environment variable
#os.getenv will fetch the environment variables from the container.
userName = os.getenv("User_Name")
passWord = os.getenv("Pass_Word")

#Now print the variables that has been fetched.
print("Running with user: %s" % userName)
print("Your password: %s" % passWord)

#Apply some operation
print(userName.upper())
print(passWord.upper())

Enregistrez le fichier ci-dessus sous main.py

Étape 2 : Créer un fichier docker

Construisez le fichier docker pour créer une nouvelle image en utilisant ce code python. Ce fichier docker est le même que celui que nous avons créé précédemment, il suffit de modifier le code python dans main.py.

Exemple

#docker build -t env_img .

Sortie

Sending build context to Docker daemon 3.072kB
Step 1/4 : FROM python
---> fa9122485d1d
Step 2/4 : WORKDIR /app
---> Using cache
---> 9e9708fe1d43
Step 3/4 : COPY . /app/
---> 31f98d53c161
Step 4/4 : ENTRYPOINT ["python3", "main.py"]
---> Running in bec1681a6842
Removing intermediate container bec1681a6842
---> 5dd89b0c7985
Successfully built 5dd89b0c7985
Successfully tagged env_img:latest

Étape 3 : Exécutez le conteneur

Utilisez les variables d'environnement mentionnées dans le script python lors de l'exécution du conteneur. L'exécution de Docker a un indicateur "-e" pour mentionner n'importe quelle variable d'environnement et nous pouvons mentionner plusieurs variables d'environnement à la fois

Exemple

#docker run -e User_Name="TutorialsPoint" -e Pass_Word="secret" --name env_cont env_img

Sortie

Running with user: TutorialsPoint
Your password: secret
TUTORIALSPOINT
SECRET

C'est ainsi que nous pouvons transmettre des arguments de ligne de commande et des variables d'environnement au conteneur Python exécuté sur le démon Docker à l'aide du client Docker.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer