Comandos de Docker y guía práctica de composición

comando básico

Docker es una popular plataforma de creación de contenedores que permite a los desarrolladores crear, empaquetar, publicar y ejecutar aplicaciones en un entorno aislado. Estos son algunos comandos básicos de Docker:

  1. docker version: verifique la información de la versión de Docker.
  2. docker info: muestra información del sistema Docker, como la cantidad de contenedores e imágenes en ejecución.
  3. docker search <image>: busque imágenes en Docker Hub.
  4. docker pull <image>: descargue la imagen de Docker Hub.
  5. docker images: enumera las imágenes descargadas localmente.
  6. docker run <image>: Ejecute una imagen en un contenedor, por ejemplo docker run hello-world, .
  7. docker ps: lista de contenedores en ejecución.
  8. docker stop <container>: detener un contenedor en ejecución, donde <container>puede ser el ID o el nombre del contenedor.
  9. docker rm <container>: Eliminar un contenedor detenido.
  10. docker rmi <image>: Eliminar un espejo local.
  11. docker build -t <tag> <directory>: Cree un espejo, -tla opción se usa para especificar la etiqueta (tag), <directory>que es el directorio que contiene el Dockerfile.
  12. docker run -p <host-port>:<container-port> <image>: Ejecute el contenedor y asigne el puerto del contenedor al puerto del host.
  13. docker exec -it <container> <command>: Ejecute el comando en el contenedor en ejecución, -itla opción se usa para ingresar al modo interactivo.
  14. docker logs <container>: Ver la salida de registro del contenedor.
  15. docker cp <container>:<path> <host-path>: Copie los archivos dentro del contenedor al host.
  16. docker network ls: enumera las redes de Docker.
  17. docker network create <network>: Cree una red Docker.
  18. docker volume ls: muestra los volúmenes de datos de Docker.
  19. docker volume create <volume>: Cree un volumen de datos de Docker.

Comando de combinación

Docker proporciona algunos comandos combinados, que se pueden combinar para completar operaciones más complejas mediante la combinación de varios comandos únicos. Estos son algunos comandos de combinación comunes de Docker y lo que hacen:

  1. Cree y ejecute el contenedor:
docker run -d --name mycontainer <image> <command>

Este comando creará un nuevo contenedor y ejecutará el comando especificado en el contenedor. -dLa opción indica que el contenedor se ejecuta en segundo plano y --namela opción especifica el nombre del contenedor.
2. Cree la imagen y ejecute el contenedor:

docker build -t myimage <directory> && docker run -d --name mycontainer myimage

Este comando primero creará una imagen y luego ejecutará un contenedor en la imagen recién creada. &&El operador se usa para concatenar dos comandos para garantizar que el contenedor solo se ejecute después de que la creación de la imagen sea exitosa.
3. Ejecute el contenedor e ingrese al modo interactivo:

docker run -it <image> <command>

Este comando ejecutará el comando especificado en modo interactivo en el contenedor y conectará el terminal a la entrada y salida estándar del contenedor.
4. Ejecute el contenedor y monte el directorio local:

docker run -v <host-path>:<container-path> <image>

Este comando ejecutará el contenedor y montará el directorio especificado en el host en la ruta especificada del contenedor para compartir archivos entre el host y el contenedor.
5. Detenga y elimine todos los contenedores:

docker stop $(docker ps -aq) && docker rm $(docker ps -aq)

Este comando detiene y elimina todos los contenedores en ejecución. docker ps -aqSe utiliza para enumerar los ID de todos los contenedores y pasarlos como argumentos a docker stoplos comandos y docker rm.
6. Eliminar todos los espejos:

docker rmi $(docker images -q)

Este comando eliminará todos los espejos locales. docker images -qLos ID utilizados para enumerar todos los espejos se pasan como argumentos al docker rmicomando.
7. Cree la imagen y envíela a Docker Hub:

docker build -t <image> <directory> && docker push <image>

Este comando crea una imagen, luego la envía a Docker Hub, lo que la hace accesible y utilizable por otros.
8. Detenga y elimine todos los contenedores y elimine todas las imágenes:

docker stop $(docker ps -aq) && docker rm $(docker ps -aq) && docker rmi $(docker images -q)

Este comando detiene y elimina todos los contenedores en ejecución y luego elimina todas las imágenes locales.
9. Ejecute el contenedor y comparta el espacio de nombres de la red con el host:

docker run -it --net=host <image> <command>

Este comando ejecutará el comando especificado en el contenedor y compartirá el espacio de nombres de la red con el host, de modo que el contenedor pueda acceder directamente a la interfaz de red en el host.
10. Ejecute el contenedor y establezca las variables de entorno:

docker run -e <key>=<value> <image>

Este comando se ejecutará en el contenedor y establecerá una o más variables de entorno para que la aplicación las use dentro del contenedor.
11. Ejecute el comando dentro del contenedor y copie el resultado en el host:

docker exec <container> <command> > <host-path>

Este comando ejecutará el comando especificado dentro del contenedor en ejecución y copiará la salida del comando a la ruta especificada en el host.
12. Si desea eliminar una imagen que no tiene nombre de imagen (es decir, sin etiqueta), puede usar el siguiente comando:

docker image prune -a

Este comando eliminará todas las imágenes sin etiquetar, incluidas las imágenes sin etiquetar sin contenedores asociados. Esto liberará espacio en el disco y limpiará las imágenes que ya no se necesitan. Tenga en cuenta que antes de ejecutar este comando, asegúrese de que ya no necesita estas imágenes sin etiquetar.
13. Para eliminar imágenes colgantes (es decir, imágenes sin contenedores asociados), use el siguiente comando:

docker image prune

Este comando elimina todas las imágenes no utilizadas para liberar espacio en disco. Tenga en cuenta que esto eliminará todas las imágenes sin contenedores asociados, incluidas las imágenes antiguas que ya no se utilizan. Antes de ejecutar este comando, asegúrese de que no necesita estas imágenes, no sea que borre accidentalmente las que necesita.
En Docker, hay algunos comandos combinados de uso común que pueden ayudarlo a administrar contenedores, imágenes y otros recursos de manera más eficiente. Estos son algunos comandos comunes de composición de Docker:

  1. Comando de limpieza:

    • Detenga y elimine todos los contenedores y elimine todas las imágenes:
      docker stop $(docker ps -aq) && docker rm $(docker ps -aq) && docker rmi $(docker images -q)
      
    • Eliminar todos los contenedores colgantes (sin imágenes asociadas):
      docker container prune
      
  2. Construir y ejecutar comandos:

    • Cree la imagen y ejecute el contenedor:
      docker build -t <image> <directory> && docker run -d --name <container> <image>
      
    • Cree la imagen, ejecute el contenedor y asigne el puerto:
      docker build -t <image> <directory> && docker run -d --name <container> -p <host-port>:<container-port> <image>
      
  3. Comando de volumen de datos:

    • Cree un contenedor y monte el volumen de datos:
      docker run -v <host-path>:<container-path> <image>
      
    • Ejecute el contenedor y monte el volumen de datos anónimos:
      docker run -v <container-path> <image>
      
    • Crear y administrar volúmenes de datos:
      docker volume create <volume>  # 创建数据卷
      docker volume ls               # 列出数据卷
      docker volume inspect <volume> # 查看数据卷详细信息
      docker volume rm <volume>      # 删除数据卷
      
  4. Comando de red:

    • Crear una red personalizada:
      docker network create <network>
      
    • Ejecute el contenedor y conéctese a la red especificada:
      docker run --network=<network> <image>
      
    • Lista de redes:
      docker network ls
      

docker inspectLos comandos se pueden combinar con otros comandos para obtener información de contenedor más rica o realizar operaciones más complejas. Aquí hay algunos docker inspectcomandos comunes que se usan en combinación con el comando:

  1. docker inspect+ jq:

    • jqes una herramienta de procesamiento JSON de línea de comandos que se puede utilizar para filtrar y extraer datos JSON.
    • Ejemplo:
      docker inspect <container> | jq .[0].NetworkSettings.IPAddress
      
    • Este ejemplo usa jqel filtro para extraer la dirección IP del contenedor.
  2. docker inspect+ grep:

    • grepes una herramienta de búsqueda de texto para hacer coincidir patrones específicos en la salida.
    • Ejemplo:
      docker inspect <container> | grep IPAddress
      
    • Este ejemplo usa grepel filtro para encontrar la dirección IP del contenedor.
  3. docker inspect+ awk:

    • awkes una herramienta de procesamiento de texto que se puede utilizar para segmentar la salida y extraer campos específicos.
    • Ejemplo:
      docker inspect <container> | awk -F'"' '/IPAddress/ {print $4}'
      
    • Este ejemplo se usa para awkextraer la dirección IP del contenedor.
  4. docker inspect+ variables de caparazón:

    • Asigne docker inspectla salida de a una variable de shell para su posterior procesamiento y uso.
    • Ejemplo:
      CONTAINER_INFO=$(docker inspect <container>)
      echo $CONTAINER_INFO
      

contenedor funcionando

Al ejecutar un contenedor, hay algunas opciones de configuración básicas disponibles para personalizar el comportamiento y el entorno del contenedor. Aquí hay algunas opciones de configuración básicas comunes y sus descripciones:

  1. Nombre del contenedor:

    • --name <name>: Especifica el nombre del contenedor, utilizado para identificar y operar el contenedor. Por ejemplo:--name mycontainer
  2. Proceso de fondo:

    • -dO --detach: ejecute el contenedor en segundo plano para que se ejecute en segundo plano sin bloquear la terminal. Por ejemplo:-d
  3. La asignación de puertos:

    • -p <host-port>:<container-port>: asigne el puerto del contenedor al puerto del host, para que el exterior pueda acceder al servicio en el contenedor. Por ejemplo:-p 8080:80
    • -PO --publish-all: asigne automáticamente todos los puertos del contenedor a puertos aleatorios en el host.
  4. Variables de entorno:

    • -e <key>=<value>: establezca la variable de entorno en el contenedor. Por ejemplo:-e ENV_VAR=example
  5. Montaje de volumen de datos:

    • -v <host-path>:<container-path>: monte el directorio o archivo del host en la ruta especificada del contenedor para compartir archivos entre el host y el contenedor. Por ejemplo:-v /path/on/host:/path/on/container
  6. lista de trabajo:

    • -w <path>: establece el directorio de trabajo del contenedor. Por ejemplo:-w /app
  7. Usuarios y permisos:

    • -u <user>[:<group>]: Especifica el usuario o grupo de usuarios dentro del contenedor. Por ejemplo:-u 1000:1000
  8. Conexión a Internet:

    • --network <network>: conecte el contenedor a la red Docker especificada. Por ejemplo:--network mynetwork
  9. Modo interactivo:

    • -iO --interactive: mantenga abierta la entrada estándar (stdin), lo que permite la interacción con el contenedor.
    • -tO --tty: Asigne un pseudo terminal (TTY).

Estas son algunas opciones comunes de configuración de ejecución de contenedores. Tenga en cuenta que , <name>, <host-port>, <container-port>, <key>, <value>, , , y son parámetros que deben reemplazarse con valores específicos de acuerdo con la situación real <host-path>.<container-path><path><user><group><network>

Solución de problemas de Docker

Hay algunos problemas comunes que puede encontrar al ejecutar Docker. Estos son algunos métodos y comandos comunes de resolución de problemas:

  1. Ver el estado del contenedor:

    • Utilice docker psel comando para ver los contenedores en ejecución.
    • Si el contenedor no se ejecuta correctamente, puede usar docker ps -ael comando para ver el estado de todos los contenedores, incluidos los detenidos.
  2. Ver registros de contenedores:

    • Utilice docker logs <container>el comando para ver la salida del registro del contenedor. <container>Puede ser el ID o el nombre del contenedor.
    • Agregue -fla opción para rastrear la salida del registro del contenedor en tiempo real.
  3. Introduzca el contenedor para la depuración:

    • Use docker exec -it <container> <command>el comando para ingresar a un contenedor en ejecución y ejecutar comandos específicos dentro del contenedor. Esto permite el acceso al contenedor para la depuración y solución de problemas.
    • Por ejemplo: docker exec -it <container> basho docker exec -it <container> shpara entrar en la terminal interactiva del contenedor.
  4. Compruebe la configuración del contenedor:

    • Utilice docker inspect <container>el comando para ver la información de configuración detallada del contenedor, incluida la configuración de red, las variables de entorno, los volúmenes montados, etc.
  5. Verifique el uso de recursos del contenedor:

    • Utilice docker statsel comando para ver el uso de recursos de un contenedor en ejecución, incluido el uso de CPU, memoria, red y disco.
  6. Reinicie el contenedor o el servicio Docker:

    • Si hay un problema con el contenedor, intente reiniciar el contenedor o el servicio Docker, lo que puede resolver algunos problemas comunes.
    • Reinicie el contenedor con docker restart <container>el comando.
    • Reinicie el servicio Docker usando sudo systemctl restart dockerel comando (Linux) o reinicie Docker Desktop (Windows o macOS).
  7. Ver el estado del servicio de Docker:

    • sudo systemctl status dockerVerifique que el servicio Docker se esté ejecutando correctamente usando el comando (Linux) o viendo el estado de Docker Desktop (Windows o macOS).
  8. Limpie los recursos inútiles:

    • Use docker system pruneel comando para limpiar contenedores, imágenes, volúmenes de datos, etc. inútiles para liberar espacio en disco.

Supongo que te gusta

Origin blog.csdn.net/pengjun_ge/article/details/131590127
Recomendado
Clasificación