<sxh bash>docker info</sxh> <sxh>docker version</sxh>
Para buscar una imagen usamos docker search <imagen_a_buscar>, por ejemplo <sxh>docker search centos</sxh>
<sxh>sudo docker images ls</sxh>
<sxh>sudo docker history <imagen></sxh>
<sxh>sudo docker pull <nombreimagen</sxh>
Por ejemplo para descargar la imagen de kali linux <sxh>sudo docker pull kalilinux/kali-linux-docker</sxh>
<sxh>docker inspect <imagen></sxh>
<sxh>docker image rm </sxh> <sxh>docker rmi</sxh>
<sxh>docker create –name <nombre> <imagen></sxh> Por ejemplo <sxh>create –name mihola holamundo</sxh>. Crea un contenedor llamado mihola, usando una imagen que se llama holamundo.
<sxh>sudo docker run -opciones nombre_imagen o codigo_imagen </sxh> <sxh>sudo docker run -t -i kalilinux/kali-linux-docker /bin/bash</sxh>
Por defecto docker usa nombre de contenedores aleatorios, si queremos que nuestro contenedor tenga un nombre determinado haremos <sxh>docker run –name <nombreimagen></sxh>
<sxh>docker run -p <puerto host>:<puerto contenedor> <imagen></sxh>
Por ejemplo para exponer los puerto de un contenedor con ngnix <sxh>docker run -p 80:80 -p 443:443 nginx:latest</sxh>
Para que nos muestre los contenedores en ejecución <sxh>docker ps</sxh> Para que nos muestr todos los contenedores, activos o inactivos <sxh>docker ps -a </sxh> Los campos que muestra son:
Para acceder al contenedor, además de crearlo, se puede hacer de dos maneras. Una es haciendo referencia al IMAGE ID y otra al repositorio (REPOSITORY) y la etiqueta (TAG). <sxh>docker run -i -t b72879fa579a /bin/bash</sxh>
O también: <sxh>docker run -i -t ubuntu:14.04 /bin/bash</sxh>
con el comando <sxh>docker system prune </sxh> con la opción -a elimina_
También podemos poner una etiqueta a nuestros contenedores, y llamarlo por dicha etiqueta, lo cual nos permitirá organizar mejor todos nuestros contenedores. Para poner una etiqueta <sxh>docker tag id_imagen repositorio:etiqueta</sxh>
Para llamar a dicho contenedor por la etiqueta, hacemos lo mismo que cuando lo llamamos por el id pero poniendo ahora la etiqueta <sxh>docker tun -i -t repositorio:etiqueta /bin/bash</sxh>
Es habitual por ejemplo a una imagen que tengamos creada ponerle una etiqueta de latest para indicar que es la última versión disponible <sxh>docker tag miimagen:version miimagen:latest</sxh> De esta forma si hacemos un docker images veremos que la misma imagen aparece dos veces pero si nos fijamos en campo image id es la misma imagen. Es decir es como si hubieramos creado un enlace para poder llamar a la misma imagen.
<sxh>docker start imagenid</sxh> o bien con <sxh>docker start nombre</sxh> Con estos comandos arrancamos el contenedor pero no nos conectamos al mismo. Si queremos acceder ejecutamos <sxh>docker attach id</sxh>
Para parar un contenedor <sxh>docker stop imagenid_o nombre </sxh>
Para parar todos los contenedores <sxh>docker stop $(docker ps -a -q)</sxh>
Escribiendo exit en nuestro contenedor, o Pulsando CTRL+D salimos del mismo pero parando la ejecución del mismo. Si queremos salir del contenedor pero que se siga ejecutando debemos presionar CTRL, después P y luego Q
Las imágenes son plantillas de sólo lectura, que usamos de base para lanzar contenedores. Por tanto todo lo que hagamos en el contenedor sólo persiste en ese contenedor y NO se guardan en la imagen.
Si queremos que dichos cambios sean permanentes, debemos crear una nueva imagen con el contenedor personalizado. <sxh>docker commit -m “comentario” -a “autor” <identificadordelcontenedor> nuevonombreimagen</sxh>
Por ejemplo <sxh>docker commit -m “Imagen actualizada centos” -a “LC” c605d57c9aa1 centosactualizado:v1</sxh>
Con commit creamos una nueva imagen en nuestro repositorio local.
<sxh>docker rm <contenedor> </sxh>
Para borrar todos los contenedores <sxh>docker rm $(docker ps -a -q)</sxh>
Probar <sxh>docker container rm $(docker container ls -a -q)</sxh>
Para copiar un fichero desde un contenedor a nuestra máquina hacemos <sxh>docker cp <nombre_contenedor o id>:<ruta_al_fichero> <directorio_local_a_donde_copiar></sxh>
También podemos hacerlo a la inversa. Desde la máquina local al contenedor
Podemos ejecutar un comando dentro de un contenedor con <sxh>docker exec <nombre o id contenedor> <comando></sxh>
Por ejemplo para iniciar un shell intereactivo <sxh>docker exec -it micontenedor sh</sxh>
También <sxh>docker exec -it micontenedor bash</sxh>
Para sar un listado de los procesos que corren en el contenedor <sxh>docker exec micontenedor ps </sxh>
Con la opción -d Nos permite ejecutar un contenedor en segundo plano y poder correr comandos sobre el mismo en cualquier momento mientras esté en ejecución. Se dice que es un contenedor demonizado y se ejecutará indefinidamente
por ejemplo <sxh>docker run -d –name tomcat:v8 miimagentomcat</sxh>
Para ver los logs que está generando un contenedor, ejecutaríamos el comando <sxh>docker logs <nombre contenedor o id></sxh>
con el comando stats obtenemos estadísticas de uso y consumo de nuestro contenedor <sxh>docker stats <nombre contenedor o id></sxh>