Instrucciones simples para realizar que la imagen de compilación de Docker comience a ejecutarse, guarde la exportación y luego importe al nuevo entorno para completar todo el proceso

Escenario del proyecto y descripción del problema

Este artículo es una guía de instrucciones simple para usar Docker, que puede realizar rápidamente el proceso completo de crear una imagen de Docker, iniciar, ejecutar, guardar, exportar y luego importar a un nuevo entorno. Cada comando tiene muchos parámetros y conocimientos. Puede buscar explicaciones más detalladas por sí mismo. Xiaobai puede usar este artículo para construir y usar imágenes rápidamente.


Cree imágenes automáticamente usando Dockerfile

Primero, prepare un Dockerfile que contenga información sobre la imagen base que desea usar. Tome el siguiente Dockerfile como ejemplo, la imagen básica se basa en el sistema operativo ubuntu20.04, la versión cuda es 11.2.0, la versión del controlador nvidia es 450.80.02 y wget, git, vim, python3, python3-pip , ffmpeg y otras herramientas de uso común, y cree un directorio de trabajo /app. Para obtener más referencias, consulte el vínculo de referencia al final de este artículo. Por lo general, algunos proyectos en GitHub también proporcionarán el Dockerfile del entorno del autor.

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

Una vez que el Dockerfile esté listo, ejecute el siguiente comando en el directorio donde se encuentra el Dockerfile para compilar la imagen.

docker build -t MyUbuntu .

(No te pierdas el último "." oh~)
El parámetro -t va seguido del nombre de la etiqueta (tag) de la imagen. De forma predeterminada, Docker encontrará el Dockerfile desde el contexto de compilación, y también puede especificar la ubicación del Dockerfile a través del parámetro -f.

Una vez que la imagen se haya creado correctamente, puede usar docker imagesel comando para ver la imagen creada, incluido el REPOSITORIO, la ETIQUETA, el ID de la IMAGEN y otra información.
dockerimages
Tome la imagen de arriba como ejemplo. El REPOSITORIO de imágenes recién creado es ebxxx06, la ETIQUETA es la más reciente y la ID DE LA IMAGEN es 4baxxxe34 (xxx es un mosaico).


imagen de inicio de ejecución de docker

Comando de inicio simple:

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

como:

docker run -it MyUbuntu:latest

Un comando de inicio más complicado:

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

Entre ellos,
el parámetro -v es seguido por el directorio local: el directorio en docker, y los dos directorios son compartidos. El
parámetro -p es seguido por la asignación de puertos.
El parámetro --gpus all es para habilitar el
parámetro GPU -- el nombre es seguido por el nombre del contenedor.Tome
el último MyUbuntu :latest es el REPOSITORIO:ETIQUETA de la imagen que desea iniciar

Una vez que se inicia el contenedor, ingresará directamente al contenedor y el comando exitpuede salir del contenedor.


docker exec para ejecutar el contenedor

Es relativamente simple ingresar nuevamente el comando en ejecución para el contenedor iniciado, pero es necesario confirmar si el contenedor se está ejecutando.
Instrucciones docker pspara ver contenedores en ejecución
Instrucciones docker ps -apara ver todos los contenedores en el historial

dockerps

Por lo general, después de que se usa el primer comando de ejecución para iniciar el contenedor y salir, el estado del contenedor será Salido Verifique la ID DEL CONTENEDOR del contenedor que se iniciará a través del comando, generalmente solo se necesitan los primeros tres dígitos Primero, asegúrese el estado del contenedor es Activo, si
no para hacer que el contenedor esté en estado de ejecución y luego usar el siguiente comando para ejecutar el contenedor:docker ps -adocker start <CONTAINER ID> 或 <CONTAINER ID的前三位>

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

Tome la imagen de arriba como ejemplo, el comando es:

docker exec -it 074 /bin/bash

Docker confirmar guardar contenedor

Puede usar docker commitel comando para empaquetar un contenedor en una imagen, de modo que el entorno que instaló cuando ejecutó el contenedor, como la biblioteca de Python instalada por pip, etc., se pueda conservar, pero el tamaño de la imagen exportada ser mucho más grande que la imagen base inicial. El comando es el siguiente:

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

como:

docker commit 074 MyUbuntu:latest

ventana acoplable guardar exportación de imagen

Los siguientes dos comandos están disponibles para la exportación de imágenes locales:

docker save -o MyUbuntu.tar <IMAGE ID>

o

docker save <IMAGE ID> > MyUbuntu.tar

como:

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

El IMAGE_ID anterior también se puede reemplazar con <repositorio espejo: ETIQUETA>
como:

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

importación de imagen de carga de ventana acoplable

Puede transferir el paquete MyUbuntu.tar de la imagen exportada al host docker que necesita usar el paquete de imagen. Se pueden usar los siguientes dos comandos para importar la imagen:

docker load -i MyUbuntu.tar

o

docker load < MyUbuntu.tar

Después de importar, use docker imagesel comando para ver la imagen importada en el nuevo entorno. Para iniciar y ejecutar, utilice las instrucciones presentadas anteriormente.


Descripción:
1. La diferencia entre docker save y docker export:
docker save guarda toda la información de la imagen, incluida la información histórica, use
docker export con docker load para exportar solo la información actual, utilícelo con docker import
2. Si usa el ID DE LA IMAGEN al exportar la imagen, al importar un nuevo entorno, el REPOSITORIO y la ETIQUETA de la imagen pueden no ser ninguno, y el siguiente comando se puede usar para cambiar el nombre de la imagen:

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

Referencias, Materiales Suplementarios

Docker Dockerfile
Hay varias formas de crear una imagen de Docker
Construcción de imágenes de Docker, importación y exportación de imágenes y contenedores de Docker

Supongo que te gusta

Origin blog.csdn.net/qq_39691492/article/details/131420207
Recomendado
Clasificación