Des instructions simples pour réaliser l'image de construction Docker commencent à exécuter l'exportation de sauvegarde, puis importent dans le nouvel environnement pour terminer l'ensemble du processus

Scénario du projet et description du problème

Cet article est un guide d'instructions simple pour l'utilisation de Docker, qui permet de réaliser rapidement le processus complet de création d'une image Docker, de démarrage, d'exécution, d'enregistrement, d'exportation, puis d'importation dans un nouvel environnement. Chaque commande a beaucoup de paramètres et de connaissances. Vous pouvez vérifier vous-même des explications plus détaillées. Cet article peut être utilisé par Xiaobai pour créer et utiliser rapidement des images.


Créez automatiquement des images à l'aide de Dockerfile

Tout d'abord, préparez un Dockerfile contenant des informations sur l'image de base que vous souhaitez utiliser. Prenez le Dockerfile suivant comme exemple, l'image de base est basée sur le système d'exploitation ubuntu20.04, la version cuda est 11.2.0, la version du pilote nvidia est 450.80.02 et wget, git, vim, python3, python3-pip , ffmpeg et d'autres outils couramment utilisés, et créez un répertoire de travail /app. Pour plus de références, voir le lien de référence à la fin de cet article Habituellement, certains projets sur GitHub fournissent également le Dockerfile de l'environnement de l'auteur.

Dockerfile

FROM nvidia/cuda:11.2.0-devel-ubuntu20.04
RUN export DEBIAN_FRONTEND=noninteractive;apt-get update && \
apt-get install -y --no-install-recommends wget git vim python3 python3-pip ffmpeg 
WORKDIR /app

Une fois le Dockerfile prêt, exécutez la commande suivante dans le répertoire où se trouve le Dockerfile pour créer l'image.

docker build -t MyUbuntu .

(Ne manquez pas le dernier "." oh~)
Le paramètre -t est suivi du nom de la balise (tag) de l'image. Par défaut, docker trouvera le Dockerfile à partir du contexte de construction, et vous pouvez également spécifier l'emplacement du Dockerfile via le paramètre -f.

Une fois l'image créée avec succès, vous pouvez utiliser docker imagesla commande pour afficher l'image créée, y compris REPOSITORY, TAG, IMAGE ID et d'autres informations.
dockerimages
Prenons l'image ci-dessus comme exemple. Le référentiel d'images nouvellement créé est ebxxx06, TAG est le plus récent et ID IMAGE est 4baxxxe34 (xxx est une mosaïque).


image de démarrage de l'exécution du menu fixe

Commande de démarrage simple :

docker run -it <镜像的REPOSITORY:TAG>

comme:

docker run -it MyUbuntu:latest

Une commande de démarrage plus compliquée :

docker run -it -v /home/app/VeraCode:/app/VeraCode/ -p 8060:8060 --entrypoint="/bin/bash" --gpus all --name MyUbuntu2023 MyUbuntu:latest

Parmi eux,
le paramètre -v est suivi du répertoire local : le répertoire dans docker, et les deux répertoires sont partagés. Le
paramètre -p est suivi du mappage de port.
Le paramètre --gpus all sert à activer le
paramètre GPU -- name est suivi du nom du conteneur. Prenez
le dernier MyUbuntu :latest est le REPOSITORY:TAG de l'image que vous souhaitez démarrer

Une fois le conteneur démarré, il entrera directement dans le conteneur et la commande exitpourra quitter le conteneur.


docker exec pour exécuter le conteneur

Il est relativement simple d'entrer à nouveau la commande d'exécution pour le conteneur démarré, mais il est nécessaire de confirmer si le conteneur est en cours d'exécution.
Instructions docker pspour afficher les conteneurs en cours d'exécution
Instructions docker ps -apour afficher tous les conteneurs de l'historique

dockers

Habituellement, après l'utilisation de la première commande d'exécution pour démarrer le conteneur et quitter, le statut du conteneur sera Exited Vérifiez l'ID CONTAINER du conteneur à démarrer via la commande, généralement seuls les trois premiers chiffres sont nécessaires. l'état du conteneur est Up,
sinon pour rendre le conteneur en cours d'exécution, puis utiliser la commande suivante pour exécuter le conteneur :docker ps -adocker start <CONTAINER ID> 或 <CONTAINER ID的前三位>

docker exec -it <CONTAINER ID><CONTAINER ID的前三位> /bin/bash

Prenez l'image ci-dessus comme exemple, la commande est :

docker exec -it 074 /bin/bash

docker commit enregistrer le conteneur

Vous pouvez utiliser docker commitla commande pour empaqueter un conteneur dans une image, afin que l'environnement que vous avez installé lorsque vous exécutez le conteneur, tel que la bibliothèque Python installée par pip, etc., puisse être conservé, mais la taille de l'image exportée sera être beaucoup plus grande que l'image de base initiale. La commande est la suivante :

docker commit <CONTAINER ID> <镜像的REPOSITORY:TAG>

comme:

docker commit 074 MyUbuntu:latest

docker enregistrer l'exportation d'image

Les deux commandes suivantes sont disponibles pour l'exportation d'images locales :

docker save -o MyUbuntu.tar <IMAGE ID>

ou

docker save <IMAGE ID> > MyUbuntu.tar

comme:

docker save -o MyUbuntu.tar 4baxxxe34
或
docker save 4baxxxe34 > MyUbuntu.tar

L'IMAGE_ID ci-dessus peut également être remplacé par <mirror REPOSITORY:TAG>
tel que :

docker save -o MyUbuntu.tar MyUbuntu:latest
或
docker save MyUbuntu:latest > MyUbuntu.tar

docker charger l'importation d'image

Vous pouvez transférer le package d'image exporté MyUbuntu.tar vers l'hôte Docker qui doit utiliser le package d'image. Les deux commandes suivantes peuvent être utilisées pour importer l'image :

docker load -i MyUbuntu.tar

ou

docker load < MyUbuntu.tar

Après l'importation, utilisez docker imagesla commande pour afficher l'image importée dans le nouvel environnement. Pour démarrer et exécuter, utilisez les instructions présentées ci-dessus.


Description :
1. La différence entre docker save et docker export :
docker save enregistre toutes les informations de l'image - y compris les informations historiques, utilisez
docker export avec docker load pour exporter uniquement les informations actuelles, utilisez-le avec docker import
2. Si vous utilisez l'IMAGE ID lors de l'exportation de l'image, lors de l'importation d'un nouvel environnement, le REPOSITORY et le TAG de l'image peuvent être nuls, et la commande suivante peut être utilisée pour renommer l'image :

docker tag <IMAGE ID> <新镜像名称>:<新镜像标签>

Références, documents supplémentaires

Docker Dockerfile
Il existe plusieurs façons de créer une image Docker
Construction d'image Docker, importation et exportation d'images et de conteneurs Docker

Je suppose que tu aimes

Origine blog.csdn.net/qq_39691492/article/details/131420207
conseillé
Classement