[Comandos comunes de Docker]

  • Este artículo registra mi resumen del aprendizaje de Docker.
    Insertar descripción de la imagen aquí

1. Comandos básicos de Docker

  • Iniciar ventana acoplable
systemctl start docker
  • Cerrar ventana acoplable
systemctl stop docker
  • Reiniciar la ventana acoplable
systemctl restart docker
  • Ver el estado de la ventana acoplable
systemctl status docker
  • Habilite Docker para que se inicie automáticamente al arrancar
systemctl enable docker
  • Desactive la ventana acoplable que se inicia automáticamente al arrancar
systemctl disable docker
  • Ver información del número de versión de Docker
docker version
  • Ver información del sistema Docker, incluida la versión del kernel, la cantidad de contenedores e imágenes.
docker info

Insertar descripción de la imagen aquí

2. Comando de imagen de Docker

  • Ver toda la información de recursos de espejos locales. Con la opción -q, se muestra
    el ID de imagen de todos los espejos locales.
docker images
docker images -q
  • Busque en Docker Hub imágenes con condiciones específicas, como buscar imágenes con redis en el nombre de la imagen.
docker search redis
docker search 指定条件

Insertar descripción de la imagen aquí

  • Lleve la imagen de Docker Hub a local
docker pull 镜像名称
docker pull 镜像名称:tag

Extraiga la imagen con el nombre especificado. Nombre de la imagen: etiqueta (número de versión). Extraiga la imagen con el nombre especificado versión. Si no se agrega ningún número de versión, se extraerá la última versión de la imagen.

  • Elimina la imagen local especificada. Puedes eliminar varias imágenes a la vez.
docker rmi 镜像名称/镜像id
docker rmi -f 镜像名称/镜像id

De forma predeterminada, la imagen de un contenedor en ejecución no se puede eliminar. El contenedor relacionado debe detenerse y eliminarse antes de poder eliminar su imagen correspondiente. Pero también puedes agregar -f para forzar la eliminación.

Vale la pena mencionar que los comandos de Docker se pueden usar juntos, por ejemplo, si eliminamos todas las imágenes, podemos usar la siguiente combinación: use la identificación de la imagen consultada por Docker Images -q como valor eliminado.

docker rmi $(docker image -q)
  • guardar imagen
docker save 镜像名称/镜像id -o 保存的位置与名字

El comando Docker Save puede exportar una imagen como un archivo tar y luego transferir la imagen a otros servidores con Docker instalado para cargarla y usarla.

  • Cargar imagen
docker load -i 镜像保存的位置与名字

Docker Load puede importar un archivo tar a una imagen y generalmente se usa junto con Docker Save.

3. Comandos del contenedor Docker

3.1 Ejecutar el contenedor

  • Los contenedores se pueden iniciar y ejecutar mediante el comando docker run. Cuando se ejecuta este comando, primero buscará la imagen especificada localmente. Si la encuentra, se iniciará directamente. De lo contrario, se buscará en el centro de imágenes. Si la imagen existe en el centro espejo, se descargará al local y se iniciará. Si el centro espejo no existe, se informará directamente un error.

  • Puede ver la sintaxis del comando Docker Run a través de la ayuda de este comando. Puedes ver que hay muchas opciones, aquí te dejamos algunas de las más utilizadas:

opciones efecto
-nombre Dale un nombre al contenedor.
-i Ejecute el contenedor en modo interactivo, generalmente usado junto con -t
-t Asignar una pseudo terminal al contenedor
-d Ejecutar contenedor como demonio
-h Especificar el host del contenedor.
-mi Especifique el entorno requerido para el inicio del contenedor, como la contraseña de conexión.
-pag Especificar puerto de host de asignación de puertos: puerto de contenedor
  • Nombra el contenedor --nombre
docker run --name 容器名 镜像名称:tag

Por ejemplo: ejecute el contenedor redis:7.0 y asígnele el nombre redis.

docker run --name redis reids:7.0

Insertar descripción de la imagen aquí
Como se muestra en la figura anterior, significa que el contenedor redis se ejecuta correctamente, pero no puede escribir otros comandos en la consola, por lo que ejecutaremos el contenedor como un demonio.

  • Ejecute el contenedor como un demonio (ejecútelo en segundo plano) -d
docker run -d --name 容器名 镜像名称:tag

Por ejemplo: ejecute el contenedor redis:7.0 como un demonio y asígnele el nombre redis7, y use el comando docker ps para ver

docker run -d --name redis7 redis7.0

Insertar descripción de la imagen aquí

  • Especificar la asignación de puertos -p
docker run -d -p 主机端口:容器端口 --name 容器名 镜像名称:tag

Por ejemplo: ejecute redis:7.0 como un proceso demonio y asígnele el nombre redis7 y especifique el puerto del host de asignación: puerto del contenedor.

docker run -d -p 6380:6379 --name redis7 redis7.0

Insertar descripción de la imagen aquí
El comando anterior asignará el puerto 6379 del contenedor al puerto 6380 del host.
Nota: Cuando se inicia el contenedor acoplable, si no se especifican los parámetros de asignación de puertos, no se puede acceder a las aplicaciones y servicios de red en el contenedor a través de la red desde fuera del contenedor A través del mapeo de puertos, podemos acceder al puerto especificado del host desde el exterior para acceder a la aplicación del contenedor.

  • Ejecute el contenedor en modo interactivo y asigne un pseudo-terminal al contenedor -it
docker run -it 镜像名称:tag /bin/bash

Por ejemplo: ejecute el contenedor centos:7.6.1810 en modo interactivo, asigne un pseudo terminal al contenedor y luego asigne un nombre al contenedor.

docker run -it --name centos7 centos:7.6.1810 /bin/bash

Insertar descripción de la imagen aquí
Salga de la terminal e ingrese exit. En la terminal, algunos comandos de Linux también son aplicables.
Nota: Si usa exit para salir del contenedor, el contenedor se detendrá directamente. Si usa el comando Ctrl+P+Q para salir, el contenedor no se detendrá (uso común)

-i : ejecuta el contenedor en modo interactivo
-t : asigna un pseudo terminal al contenedor (generalmente usado en combinación con los dos)
/bin/bash: el comando colocado después del nombre de la imagen es el comando. Aquí esperamos tener un shell interactivo, así que use es/bin/bash

También puedes usar -itd al mismo tiempo, por ejemplo

docker run -itd --name centos7 centos:7.6.1810

Insertar descripción de la imagen aquí
Cuando se ejecuta este comando, se devolverá un ID de contenedor, porque la ejecución del comando -d devuelve un ID de contenedor.

Pregunta: ¿Por qué utilizar -itd?
Cuando ejecutamos docker -d, algunas imágenes crean contenedores, encontramos que el contenedor no se creó correctamente a través de docker ps. Por ejemplo, cuando creamos el contenedor centos7, encontramos que no se creó correctamente después de docker ps. Nota: si El contenedor acoplable se ejecuta en segundo plano, debe haber un proceso en primer plano
Insertar descripción de la imagen aquí
. Si los comandos ejecutados por el contenedor no son los que se han suspendido (como ejecutar top, tail), saldrán automáticamente.

Este es un problema con el mecanismo de Docker, como los contenedores web, tomando nginx como ejemplo. En circunstancias normales, para configurar el servicio de inicio, solo necesita iniciar el servicio correspondiente, como el servicio nginx start. Pero de esta manera, nginx se ejecuta en modo de proceso en segundo plano, lo que hace que no se ejecuten aplicaciones en el primer plano de la ventana acoplable. Después de que dicho contenedor se inicia en segundo plano, se suicidará automáticamente porque cree que no tiene nada que hacer.

La solución es ejecutar el programa que desea ejecutar como proceso de primer plano y usarlo para proporcionar un pseudo terminal, lo que indica que todavía tengo operaciones interactivas por realizar.

3.2 Salir del contenedor

Salir de un contenedor se refiere a salir de un contenedor que se ejecuta en modo interactivo. Hay dos métodos de salida:
salir y detener el contenedor : salir
salir pero no detener el contenedor : Ctrl+P+Q

3.3 Ver procesos y registros del contenedor

  • Enumere todos los contenedores, incluidos los actualmente en ejecución y los detenidos.
docker ps -a
  • Enumere los últimos contenedores creados, ya sea que se estén ejecutando o no
docker ps -l
  • Enumere el número especificado de contenedores recién creados
docker ps -n
  • Solo se muestra el ID del contenedor, que debe usarse junto con las opciones anteriores, como por ejemplo con -a.
docker ps -aq  //查询出所有容器的ID
  • Ver los procesos que se ejecutan en el contenedor.
docker top 容器名称/容器ID
  • Ver registros de contenedores
docker logs 容器名称/容器ID
  • Ver detalles del contenedor
docker inspect 容器名称/容器ID

Insertar descripción de la imagen aquí

3.4 Ingresar nuevamente al contenedor

Cuando ejecutamos un contenedor como demonio, o ejecutamos un contenedor en modo interactivo, pero el comando de registro ejecutado dentro del contenedor ocupa la línea de comando interactiva (al igual que ejecutar Tomcat en modo interactivo), y en este momento queremos ingresar Ir a El contenedor realiza algunas operaciones dentro del contenedor. En este momento, debe usar el comando exec/attach (se recomienda exec).

  • Ingrese al contenedor usando el proceso de contenedor
docker attach [OPTIONS] 容器名称/容器ID

Por ejemplo: use docker adjunto centos7 para ingresar al contenedor.
Insertar descripción de la imagen aquí
Este comando no crea un nuevo proceso, sino que usa (se adjunta) el proceso del contenedor. Use el comando de salida para salir del proceso actual y detener el contenedor. Como se muestra en la figura anterior, después de salir usando el comando de salida, consulte nuevamente y descubra que el contenedor centos ya no se está ejecutando.

  • Crea un nuevo proceso e ingresa al contenedor.
docker exec [OPTIONS] 容器名称/容器ID COMMAND

Por ejemplo: use docker exec -it centos7 /bin/bash para ingresar al contenedor y abrir una nueva terminal bash.
Insertar descripción de la imagen aquí
Este comando creará un nuevo proceso independiente del contenedor, y el uso del comando exit solo se usa para finalizar el nuevo proceso. Como se muestra en la figura anterior, después de usar el comando de salida para salir, consulte nuevamente y descubra que el contenedor centos todavía se está ejecutando.

3.5 Arranque y parada del contenedor

  • Contenedor de inicio
docker start 容器名/容器ID
  • Reiniciar contenedor
docker restart 容器名/容器ID
  • Detener contenedor
docker stop 容器名/容器ID

Este comando detiene el contenedor. Si otros procesos acceden al contenedor, se detendrá una vez que se complete el acceso.

  • Forzar la parada del contenedor
docker kill 容器名/容器ID

Este comando detiene el contenedor, independientemente de si otros procesos acceden al contenedor.

3.6 Eliminación de contenedor

  • De forma predeterminada, este comando requiere que el contenedor que se va a eliminar sea un contenedor detenido. Se pueden eliminar varios contenedores al mismo tiempo.
docker rm 容器名/容器ID
  • Agregar -f a este comando puede forzar la eliminación del contenedor, independientemente de si está detenido o no.
docker rm -f 容器名/容器ID

3.7 Transferencia de archivos de contenedor y host

El comando docker cp puede copiar archivos/directorios entre el contenedor y el host, independientemente de si el contenedor se está ejecutando.

  • Copie archivos del contenedor al host
docker cp 容器名称/容器ID:容器路径 目的主机路径
docker cp centos7:/opt/hello.txt /opt/

Por ejemplo: copie el archivo hello.txt en el directorio /opt del contenedor centos7 al directorio /opt del host mientras el contenedor no esté detenido.
Insertar descripción de la imagen aquí

Por ejemplo: cuando el contenedor esté detenido, copie el archivo docker.txt en el directorio /opt del contenedor centos7 al directorio /opt de la máquina host.
Insertar descripción de la imagen aquí

  • Copie archivos del host al contenedor
docker cp 主机路径 目的容器名称/容器ID:容器路径
docker cp /opt/aaa.txt centos7:/opt/

Por ejemplo: copie el archivo host/opt/aaa.txt al archivo /opt/ del contenedor.
Insertar descripción de la imagen aquí

3.8 Exportación e importación de contenedores

  • Exportar el contenedor como un archivo comprimido
docker export 容器名称/容器ID > 目的路径/[文件名.tar|文件名.tar.gz]

Por ejemplo: exporte el contenedor centos7 como un archivo comprimido test.tar.gz en /opt/
Insertar descripción de la imagen aquí

  • Importar archivos comprimidos como contenedores
docker import 文件路径/[文件名.tar|文件名.tar.gz] 镜像名:tag

Caso pequeño:
1. Primero elimine la imagen de centos
2. Ejecute el comando docker import test.tar.gz centos:7.6.1810
3. Verifique la imagen y descubra que la imagen se ha generado
4. Ejecute docker run y descubra que es un éxito.
Insertar descripción de la imagen aquí

3.9 Enviar una imagen en una nueva copia de imagen

  • Enviar una imagen en una nueva copia de imagen
docker commit -m "描述信息" -a "作者" 容器名称/容器ID 镜像名:tag

Caso pequeño:
1. yum instala vim en el contenedor centos original
2. Envíe la imagen original en una nueva copia de imagen
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_53354183/article/details/127884484
Recomendado
Clasificación