Aqui va una lista de comandos basicos con ejemplos:
Comandos basicos Docker
- Listar Imagenes Locales
- Descargar una imagen
- Listar procesos Docker
- Listar los contenedores
- Inspeccionar toda la configuracion de un contenedor
- Renombrar contenedor
- Arrancando y parando contenedores
- Consultar puertos de un contenedor
- Ver logs de un contenedor
- Entrar en un contenedor a traves de shell
- Copiar o meter archivos dentro de un contenedor
- Borrando contenedores y volumenes
- Crear una network
Listar Imagenes Locales
Descargar una imagen
Listar procesos Docker
Listar los contenedores
Para listar todos los contenedores que hay en el host
Inspeccionar toda la configuracion de un contenedor
Esto retorna info de la red, del volumen montado, etc…
Renombrar contenedor
Renombrar un contenedor docker
ahora puedes hacerAssignar nombre a contenedor que se va a crear en el arranque con docker run
docker run -d -p 8080:8080 -p 1521:1521 --name oracleSeconf sath89/oracle-xe-11g (esto lo llamara oracleSeconf)
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7af7d458bbdc sath89/oracle-xe-11g "/entrypoint.sh " 49 seconds ago Up 47 seconds 0.0.0.0:1521->1521/tcp, 0.0.0.0:8080->8080/tcp oracleSeconf
Arrancando y parando contenedores
Arrancar un contenedor con una imagen:
-d hace que se ejecute en segundo plano como daemon -p expone por la interfaz de docker el puerto del contenedor puertoDocker:puertocontenedorInterno
En este ejemplo arrancamos una instancia oracle en modo daemon y podemos acceder a su puerto 1521 a traves de puerto externo del contendor 49161
Si arrancamos sin -d, la shell se queda parada y podemos matar el proceso con Control+C cuando queramos.
Si tenemos la necesidad de hacer algo y que corra en background arrancamos con -d y nos basamos en la idea es que cuando se arranca desde la imagen, se establezca un nombre para el container a crear usando la opcion –name=docker run --rm -it -d --name danipenaperez_mkdocs -p 9999:8000 -v $PWD:/docs danipenaperez/mkdocs:latest
De esta forma podemos parar el contenedor
Especificar ruta del volume para el contenedor, de forma que 2 contenedores puede sharear la info en un mismo volumen compartido
docker run -d -p 8080:8080 -p 1521:1521 -v /my/local/shared/directory:/ContainerDirectory sath89/oracle-xe-11g
De manera sencilla Parar un contenedor
Consultar puertos de un contenedor
Consultar los puertos que expone un contenedor
Ver logs de un contenedor
Ver los logs de un contenedor
Ver salida continua de los logs de un contenedor
Entrar en un contenedor a traves de shell
ENTRAR EN UN CONTENEDOR PARADO (QUE NO PUEDE ARRANCAR POR EJEMPLO) Para entrar en contenedor que no puede arrancarVOLUMES
Copiar o meter archivos dentro de un contenedor
Copy files into/out container, not necesarry running container
En DockerCompose los volumenes se comparten en
Borrando contenedores y volumenes
La manera sencilla es asi
Si el conenedor estuviera usando un volumen no se borraria, para especificar que se borre hay que Borrar container y los volumenes asociados
Borrar un contenedor que esta corriendo (-force)
Borrar todos los contenedores parados que estuvieran referenciados o no)Para Operaciones Masivas:
docker-compose down [opcional]
#Borrando todos los contenedores
docker rm -f $(docker ps -a -q)
#Borrando todos los volumenes
docker volume rm $(docker volume ls -q)
docker-compose up -d [opcional]
Extraer un archivo de dentro de un contenedor
INCLUIR FOLDER EN IMAGE DOCKER (Dockerfile)
Para añadir un directorio dentro de una imagen, usar ADD (la )
FROM kong/kong-gateway:latest
USER root
# ADD directorio_maqina_local directorio_imagen
ADD kong-plugin-jwt-auth-rbac/ /usr/local/share/lua/5.1/kong/plugins/jwt-auth-rbac/
REDES DOCKER
Crear una network
Arrancar instancia usando un determinado bridge de red y un name para la instancia:docker run -d -p 33061:3306 --net=atlassian-network --name mysql57 -e MYSQL_
_PASSWORD=secret mysql:5.7 --character-set-server=utf8mb4
docker run --net=atlassian-network --name jira-software --detach --publish 8082:8080 cptactionhank/atlassian-jira-software:latest
DOCKER COMPOSE
VOLUMES
Para definir un volumen , lo debemos definir en la seccion volumes y luego referenciarlo en el service
version: '3'
services:
minio:
image: minio/minio:latest
container_name: myminio
...
volumes:
- testbucketc:/tmp/testbucketc (Buscara testbucketc en la seccion volumes y como no esta lo creara en /var/lib/docker/volumes/testbucketc)
- ./source/:/tmp/source (este en cambio referencia a un directorio relativo de la maquina host)
...
...
volumes:
testbucketc:
driver: local
Los directorios fisicos en la maquina host estaran en : /var/lib/docker/volumes/