English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Detalles de los comandos básicos de Docker

conceptos básicos de docker

Docker es un motor de contenedores de código abierto que permite a los desarrolladores empacar sus aplicaciones y paquetes de dependencias en un contenedor portátil y luego publicarlos en cualquier máquina Linux popular.

Docker es una plataforma abierta que redefine los procesos de desarrollo, prueba, entrega y despliegue de programas, Docker puede decirse que es 'construir una vez, ejecutar en cualquier lugar', esto es lo que Docker propone 'Build once, Run anywhere'

Crear imagen

Hay tres métodos para crear una imagen:

basado en un contenedor existente

Importar basado en plantilla local

Basado en dockerfile

basado en un contenedor existente

Principalmente se utiliza el comando docker commit, el formato del comando es:

docker commit [OPCIONES] CONTAINER [REPOSITORY[:etiqueta]]主要包括:

-a ,--author="" información del autor
-m,--message="" mensaje de entrega
-p,--pause=true detener la contenedor al momento de la entrega

por ejemplo:

# docker run -it centos /bin/bash
[root@d7e7ac1cbca2 /]# touch test
[root@d7e7ac1cbca2 /]# ls 
anaconda-post.log bin dev etc home lib lib64 perdidos+media encontrados mnt opt proc root run sbin srv sys test tmp usr var
# docker commit -un "add a file" -un "kafeikele" de6 centos_copy
5d318afa9e6f7fdb755db97e29e3860b752f24b0b50e6bfa0b7e457450802c0e
# docker images
REPOSITORY ETIQUETA ID DE IMAGEN FECHA DE CREACIÓN TAMAÑO VIRTUAL
centos_copy latest 5d318afa9e6f 13 segundos antes 196.7 MB

Importar basado en plantilla local

Se recomienda usar las plantillas proporcionadas por openVZ para crear

https://openvz.org/Descargar/plantillas/precreated
#cat centos-7-x86_64-minimal.tar.gz.crdownload | docker import - centos:latest

Exportar e importar imágenes

# docker images
centos 7.1.1503 47a77536ad4c 8 semanas antes 212.1 MB
# docker save -o centos_7.1.tar centos:7.1.1503 
# docker load --input centos_7.1.tar
# docker load < centos_7.1.tar

Basado en dockerfile

El contenido posterior se detalla

Ejecutar el primer contenedor docker

# docker run centos echo "hello world"
No se puede encontrar la imagen 'centos:latest' localmente
latest: Descargando desde centos
47d44cb6f252: Descarga completa
168a69b62202: Descarga completa
812e9d9d677f: Descarga completa
4234bfdd88f8: Descarga completa
ce20c473cd8a: Descarga completa
centos:latest: La imagen que está descargando ha sido verificada. Importante: la verificación de imagen es una función de vista previa técnica y no debe dependerse de ella para proporcionar
seguridad.
Resumen: sha256:3aaab9f1297db9b013063c781cfe901e2aa6e7e334c1d1f4df12f25ce356f2e5
Estado: Se descargó una imagen más reciente para centos:latest
hola mundo

Descripción del comando:

docker run: comando estándar de inicio de contenedor

centos: nombre de la imagen, por defecto es latest

echo y el contenido posterior: comando ejecutado después de que se inicie el contenedor

Iniciar un contenedor interactivo

docker run -it centos /bin/bash

*Nota:-t indica que se especifica un terminal falso o terminal en el contenedor-i indica que se permite interactuar con STDIN del contenedor

Iniciar un contenedor docker en modo de servicio

Si realmente pruebas, probablemente hayas notado que el primer contenedor "hello world" sale después de ejecutar el comando echo, mientras que el segundo contenedor interactivo sale cuando el usuario sale del bash del contenedor actual. Esto claramente no satisface los requisitos de un servicio que se ejecute a largo plazo, por lo que docker run proporciona '-con el parámetro "d' se puede iniciar el contenedor en modo de daemon.

docker run -d centos /bin/bash -c "while true; do echo Docker,hello world; sleep 2; <br>179fc7f17c358834364d23112aa26d6a9e1875b2281563720425f62a8f1b5c33

Esta cadena larga se llama ID del contenedor. Es la identificación única del contenedor, por lo que podemos usarla para operar con el contenedor, como ver los registros, detener o eliminar el contenedor, etc.

dock logs 179fc7f17c358834364d

¿Y por qué usar un bucle infinito para la salida?

Porque si no es un bucle infinito, después de una salida, el proceso dentro del contenedor termina. Cuando todos los procesos únicos del contenedor terminan, el contenedor se detiene. Por lo tanto, si se debe ejecutar un servicio específico en el contenedor, ese servicio también debe ejecutarse en modo de daemon dentro del contenedor.

docker run [OPCIONES] IMAGEN [COMANDO] [ARG...]

Opciones principales:

-d : Ejecutar el contenedor en modo de fondo
-t : Proporcionar un terminal falso
-i : Proporcionar entrada interactiva, generalmente con "-junto con "t", si solo se proporciona:-con la opción "i", el contenedor no puede salir después de arrancar
-v : Mapear un volume a un contenedor, por ejemplo: -p /data/www:/var/www/html
-p : Mapear el puerto del contenedor al anfitrión, por ejemplo: -p 8080:80

Más comandos de operación

# docker images Listar todas las imágenes locales
# docker search centos Buscar imágenes en el repositorio de imágenes por defecto
NOMBRE DESCRIPCIÓN ESTRELLAS OFICIAL AUTOMATIZADO
centos Edición oficial de CentOS. 2767 [OK] 
ansible/centos7-ansible Ansible en Centos7 90 [OK]
jdeathe/centos-ssh CentOS-6 6.8 x86_64 / CentOS-7 7.2.1511 x8... 42 [OK]
jdeathe/centos-ssh-apache-php CentOS-6 6.8 x86_64 - Apache / PHP / PHP M... 21 [OK]
nimmis/java-centos Estas son imágenes de docker de CentOS 7 con dif... 17 [OK]
consol/centos-xfce-vnc Contenedor Centos con "sin cabeza" sesión VNC... 14 [OK]
#docker pull centos Descargar la imagen al local
#docker create -it ubuntu:latest Crear un contenedor
No se puede encontrar la imagen 'ubuntu:latest' localmente
latest: Descargando desde ubuntu
58488e45273c: Descarga completa 
25810b66099e: Descarga completa 
6571ba684f54: Descarga completa 
6ed49a73d8f0: Descarga completa 
c53777cbfc31: Descarga completa 
56465e1e45d2: Descarga completa 
Resumen: sha256:312986132029d622ae65423ca25d3a3cf4510de25c47b05b6819d61e2e2b5420
Estado: Descargada imagen más reciente para ubuntu:latest
1330233e50aba7fca99e5914bd28dd89321bc86ec35fb36b4775d3424337c190
El contenedor creado con el comando docker create está en estado de parada, se necesita usar docker start para iniciarlo
# docker ps -a
IDENTIFICADOR DE CONTENEDOR IMAGEN COMANDO CREADO ESTADO PUERTOS NOMBRES
1330233e50ab ubuntu:latest "/bin/bash" Hace unos minutos happy_engelbart
El comando docker run es equivalente a ejecutar primero el comando docker create y luego el comando docker start
# docker run ubuntu /bin/echo "hola mundo"
hola mundo

entrar al contenedor

Método uno:

# docker attach a54615a88787 sigue el nombre del contenedor o el ID, el contenedor de docker también sale después de salir, no se usa comúnmente

Método dos:

# docker exec -it a54615a88787 /bin/bash sigue el nombre del contenedor o el ID

Método tres:

yum -y install util-linux
# docker inspect --format "{{.State.Pid}}" stupefied_cray el nombre del contenedor sigue al final
4899
# nsenter --target 4899 --mount --uts --ipc --net --pid

Script

#!/bin/bash
CNAME=$1
CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME)
nsenter --target $CPID --mount --uts --ipc --net –pid

Lo mencionado anteriormente es una explicación detallada de los comandos básicos de Docker que el editor le ha presentado a ustedes, esperando que les sea útil. Si tienen alguna pregunta, déjenme un mensaje y responderé a tiempo. También agradezco mucho el apoyo de todos a la página web de呐喊教程!

Declaración: El contenido de este artículo se ha obtenido de la red, pertenece al propietario original, el contenido ha sido contribuido y subido por los usuarios de Internet, este sitio no posee los derechos de propiedad, no ha sido editado por humanos y no asume ninguna responsabilidad legal. Si encuentra contenido sospechoso de copyright, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @) para denunciar y proporcionar evidencia relevante. Una vez verificada, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustará