_Muestra un listado de todas las images
$docker images
_docker ps muestra un listado de los contenedores en ejecución
$docker ps
_docker pull, el cual permite extraer la imagen de un repositorio
`$docker pull``
_docker push permite cargar las images creadas a cualquier repositorio principalmente a docker hub
$docker push
_Iniciar el Contenedor
$docker run
_docker Exec se utiliza para conectarse y obtener una shell (acceso)
$docker exec -it CONTENEDOR_ID
_docker Inspect es un comando que permite obtener información detallada del contenedor
_docker rm es un comando que permite la eliminación de contenedores, imágenes, volúmenes
Descarguemos la imagen de Jenkins
Paso 1: Descargar jenkins docker pull jenkins/jenkins:latest
Paso 2: Buscar la imagen
$docker images |grep jenkins
Paso 3: Ejecutamos el Contenedor
- El Flag -d ejecuta el contenedor en segundo plano e imprime el ID de contenedor
$docker run -d jenkins/jenkins:latest
Paso 4: Listar si se ejecutó el contenedor
$docker ps
Paso 5: Mapear puerto
$docker run -d -p 8080:8080 jenkins/jenkins:latest
Paso 6: Si eliminamos
$docker rm -f contenedor_id"
$docker stop ID_Container
$docker start ID_Container
_Conectar con el Contenedor con exec y sacar el secret de jenkins
Paso 1: iniciamos el contenedor Jenkins
$docker run -d -p 8080:8080 jenkins/jenkins:latest
Paso 2: ubicar la ruta donde esta ubicado el secret de jenkins y hacer un cat dentro del contenedor
cat /var/jenkins_home/secrets/initialAdminPassword
Paso 3: Docker Exec `$docker exec -ti "container_ID" bash
_Nota: - Es posible que su contenedor no tenga bash y, de ser así, puede usar sh.
`$docker exec -ti "container_ID" sh
Paso 4: problemos agregar el usuario root `$docker exec -u root -ti "container_ID" bash
Paso 1: agregarlo al momento de correr el contenedor
$docker run -d -e "prueba1=4321" nathanpeck/greeting
Paso 2: entrar en el contenedor y revisar si tiene la variable de entorno
$docker exec -it contenedorID sh
_Los volumenes permiten almacenar data persistente del contenedor
`$docker run -v nombre-volumen:/var/lib/mysql mysql:5.7``
- nombre-volumen: nombre del volumen que vamos a usar.
- /var/lib/mysql: path donde el contenedor persiste los datos por defecto.
- mysql:5.7: nombre imagen
Usar un directorio
$docker run -v home/usuario/data:/var/lib/mysql mysql:5.7
- home/usuario/data: directorio que queremos usar para que nuestro contenedor persista los datos
- /var/lib/mysql: directorio donde persiste los datos mysql por defecto.
- mysql:5.7 imagen que vamos usar para instanciar un contenedor
Eliminar Volumen
$docker volume rm nombre-volumen
docker run -d --name jenkins -p 8080:8080 -v /home/data/jenkins/:/var/jenkins_home jenkins/jenkins
docker run -d -it --name test-container -v "testVolume":/tmp ubuntu:xenial
docker inspect test-container
docker run -v $PWD/index.html:/usr/share/nginx/html/index.html -d nginx
docker run -v $PWD/index.html:/usr/share/nginx/html/index.html:ro -d -p 80:80 nginx
- Bridge: La red standard que usarán todos los contenedores
- host: El contenedor usará el mismo IP del servidor real que tengamos.
- none: Se utiliza para indicar que un contenedor no tiene asignada una red.
ip -a |grep docker
docker run -d nginx
docker inspect ID_CONTENEDOR
docker network ls
docker network ls |grep bridge
docker inspect ID_COntenedor |grep bridge -C 5
En la red bridge se pueden ver por IP, pero no por nombre
Para crear una cuenta en Docker Hub, regístrese enDocker Hub. Después, para hacer push a su imagen, primero ingrese en Docker Hub. Se le pedirá que se autentique:
docker login -u docker-registry-username
docker login
el mensaje del okey
login Succeeded
Tagear la imagen
docker tag docker-image-name docker-registry-username/docker-image-name:1.0
docker push docker-registry-username/docker-image-name
_Aplicaciones multicontenedor
- Contenedores
- imagenes
- volumenes
- Redes
docker-compose.yml
Es el archivo donde residen las instrucciones y configuraciones de él/los servicios.
Se usa para generar la imagen, basada en las especificaciones del servicio en el docker-compose (y en el Dockerfile) Se puede especificar qué service del docker-compose buildear, si solo se quiere ejecutar sobre uno.
docker-compose build // para buildear todos los services
docker-compose build local //para buildear el service local
En caso de no existir la imagen (build previo), se arma la misma, y siempre se crea el container y luego se inicia.
Como el build se puede levantar un servicio específico definido en el docker-compose, por ejemplo haciendo:
$docker-compose up local
Se inicia un container existente (frenado mediante el comando de stop).
Para esto se debe especificar el container a iniciar haciendo:
docker-compose start nombre_container
Frena un container, sin eliminarlo, para luego poder iniciarse nuevamente con start. docker-compose stop nombre_container
Se utiliza para frenar el/los container/s, eliminarlos.
$docker-compose down