English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El cliente Docker es muy simple, podemos ingresar directamente el comando docker para ver todas las opciones de comandos del cliente Docker.
w3codebox@w3codebox:~# docker
Se puede utilizar el comando docker command --help Para obtener una comprensión más profunda del uso del comando Docker específico.
Por ejemplo, para ver docker stats Uso específico del comando:
w3codebox@w3codebox:~# docker stats --help
Si no tenemos la imagen ubuntu localmente, podemos usar el comando docker pull para cargar la imagen ubuntu:
$ docker pull ubuntu
Las siguientes instrucciones utilizan la imagen ubuntu para iniciar un contenedor, los parámetros son para ingresar al contenedor en modo de línea de comandos:
$ docker run -it ubuntu /bin/bash
Explicación de los parámetros:
-i: operación interactiva.
-t: terminal.
ubuntu: imagen ubuntu.
/bin/bash:El comando que se coloca después del nombre de la imagen es el comando, aquí queremos tener una Shell interactiva, por lo que usamos /bin/bash。
Para salir del terminal, ingrese exit:
root@ed09e4490c57:/# exit
Para ver todos los comandos de contenedor, siga las instrucciones a continuación:
$ docker ps -a
Haga clic en la imagen para verla a gran escala:
Para iniciar un contenedor que se ha detenido, use el comando docker start:
$ docker start b750bbbcfd88
En la mayoría de los casos, esperamos que el servicio de docker se ejecute en segundo plano, podemos hacerlo pasando -d especifica el modo de ejecución del contenedor.
$ docker run -itd --name ubuntu-test ubuntu /bin/bash
Haga clic en la imagen para verla a gran escala:
Nota:Añadido -El parámetro d por defecto no ingresará al contenedor, para ingresar al contenedor se necesita usar la instrucción docker exec(esto se explicará más adelante)。
El comando para detener un contenedor es el siguiente:
$ docker stop <ID del contenedor>
Los contenedores que se han detenido pueden ser reiniciados con el comando docker restart:
$ docker restart <ID del contenedor>
Al usar -d Cuando se especifica el parámetro, el contenedor entrará en segundo plano después de que se inicie. En este momento, si desea ingresar al contenedor, puede hacerlo mediante las siguientes instrucciones:
docker attach
docker exec:Recomienda a todos que utilicen el comando docker exec, ya que este comando sale del terminal del contenedor sin detener el contenedor.
Comando attach
A continuación, se muestra un ejemplo de cómo usar el comando docker attach.
$ docker attach 1e560fca3906
Atención: Si sale de este contenedor, se detendrá el contenedor.
Comando exec
A continuación, se muestra un ejemplo de cómo usar el comando docker exec.
docker exec -it 243c32535da7 /bin/bash
Atención: Si sale de este contenedor, el contenedor no se detendrá, por eso se recomienda a todos usar docker exec razón.
Más detalles sobre los parámetros se pueden obtener usando docker exec --Ver el comando help para obtener más detalles.
Exportar contenedor
Si se desea exportar un contenedor local, se puede usar docker export Comando.
$ docker export 1e560fca3906 > ubuntu.tar
Exportar contenedor 1e560fca3906 Exportar instantánea a archivo local ubuntu.tar。
De esta manera se exporta la instantánea del contenedor a un archivo local.
Importar instantánea de contenedor
Se puede usar docker import para importar de nuevo desde el archivo de instantánea del contenedor como imagen, el siguiente ejemplo importa el archivo de instantánea ubuntu.tar a la imagen test./ubuntu:v1:
$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
Además, también se puede importar especificando una URL o un directorio, por ejemplo:
$ docker import http://example.com/exampleimage.tgz example/imagerepo
Uso para eliminar contenedor docker rm Comando:
$ docker rm -f 1e560fca3906
Las siguientes órdenes pueden limpiar todos los contenedores en estado de terminación.
$ docker container prune
El contenedor que ejecutamos anteriormente no tiene alguna utilidad especial.
Ahora intentemos construir una aplicación web utilizando docker.
Vamos a ejecutar una aplicación Python Flask en un contenedor docker para ejecutar una aplicación web.
w3codebox@w3codebox:~# docker pull training/webapp # Cargar la imagen w3codebox@w3codebox:~# docker run -d -P training/webapp python app.py
Descripción de los parámetros:
-d:Hacer que el contenedor se ejecute en segundo plano.
-P:Mapear aleatoriamente los puertos de red utilizados internamente por el contenedor a nuestro host.
usar docker ps para ver los contenedores en ejecución:
w3codebox@w3codebox:~# docker ps Usar docker ps para ver los contenedores en ejecución: d3d5e39ed9d3 training/ID DE CONTENEDOR ... IMAGEN ... COMANDO ... PUERTOS32769->5000/tcp
webapp "python app.py" ... 0.0.0.0:
Aquí hay más información sobre puertos. 0.0.0.0:32769->5000/tcp
PUERTOS 5Docker ha abierto 32769 puerto 000 (puerto predeterminado de Python Flask) mapeado al puerto del anfitrión
ahora.
También podemos acceder a la aplicación WEB a través del navegador -p parámetro para configurar un puerto diferente:
w3codebox@w3codebox:~$ docker run -d -p 5000:5000 training/webapp python app.py
docker psVer los contenedores en ejecución
w3codebox@w3codebox:~# docker ps IDENTIFICADOR DE CONTENEDOR IMAGEN PUERTOS NOMBRES bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar d3d5e39ed9d3 training/webapp ... 0.0.0.0:32769->5000/tcp xenodochial_hoov
interno del contenedor 5puerto 000 mapeado a la máquina local 5puerto 000.
a través de docker ps el comando puede ver el mapeo de puertos del contenedordocker también proporciona otra forma abreviada docker port,usando docker port puede ver el mapeo de un puerto específico (ID o nombre) del contenedor al puerto del anfitrión.
El ID del contenedor de la aplicación WEB que creamos es bf08b7f2cd89 El nombre es wizardly_chandrasekhar.
Puedo usar docker port bf08b7f2cd89 o docker port wizardly_chandrasekhar para ver la situación de mapeo de puertos del contenedor.
w3codebox@w3codebox:~$ docker port bf08b7f2cd89 5000/tcp -> 0.0.0.0:5000
w3codebox@w3codebox:~$ docker port wizardly_chandrasekhar 5000/tcp -> 0.0.0.0:5000
docker logs [ID o nombre] puede ver la salida estándar del contenedor.
w3codebox@w3codebox:~$ docker logs -f bf08b7f2cd89 * Ejecutándose en http://0.0.0.0:5000/ (Presione CTRL+C para salir) 192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 - 192.168.239.1 - - [09/May/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -
-f: permite docker logs como usar tail -f de la misma manera para exportar la salida estándar del contenedor.
Desde arriba, podemos ver que la aplicación utiliza 5000 puerto y poder ver el registro de acceso de la aplicación.
También podemos usar docker top para ver los procesos que se ejecutan dentro del contenedor.
w3codebox@w3codebox:~$ docker top wizardly_chandrasekhar UID PID PPID ... TIEMPO CMD root 23245 23228 ... 00:00:00 python app.py
Usar docker inspect Para ver la información subyacente de Docker. Devolverá un archivo JSON que registra la configuración y el estado del contenedor de Docker.
w3codebox@w3codebox:~$ docker inspect wizardly_chandrasekhar [ { "ID": "bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85, "Creado": "2018-09-17T01:41:26.174228707Z", "Ruta": "python", "Argumentos": [ "app.py" ], "Estado": { "Muerto": false, "PID": 23245 "CódigoDeSalida": 0, "Error": "", "IniciadoEn": "2018-09-17T01:41:26.494185806Z", "FinalizadoEn": "0001-01-01T00:00:00Z" } ......
w3codebox@w3codebox:~$ docker stop wizardly_chandrasekhar wizardly_chandrasekhar
Los contenedores que ya están parados, podemos usar el comando docker start para arrancarlos.
w3codebox@w3codebox:~$ docker start wizardly_chandrasekhar wizardly_chandrasekhar
docker ps -l Consultar el contenedor creado por última vez:
# docker ps -l IDENTIFICADOR DE CONTENEDOR IMAGEN PUERTOS NOMBRES bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar
Para contenedores en ejecución, podemos usar el comando docker restart para reiniciar.
Podemos usar el comando docker rm para eliminar contenedores no necesarios
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar wizardly_chandrasekhar
Al eliminar el contenedor, el contenedor debe estar en estado de detención, de lo contrario se producirá el siguiente error
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar Respuesta de error de respuesta del demonio: No puedes eliminar un contenedor en ejecución bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85Detener el contenedor antes de intentar la eliminación o eliminar forzado