El DockerFile nos permitirá definir las funciones basicas del contenedor partiendo
de la construccion de una imagen.
Debemos crearlo dentro de la carpeta site, junto con el source del sitio en Jenkins
............................
Ingredientes de un DockerFile
FROM: Define una imagen base para crear nuestra nueva imagen con DockerFile
-FROM repositorio:tag
-FROM Ubuntu:16:04
MANTAINER: Hace referencia al creador de la receta
-MANTAINER user mail@cuenta.comandos
-MANTAINER kimberling pikim@gmail.com
RUN: Nos permite ejecutar comandos en la imagen base antes de ser creada dentro del contenedor
-RUN apt-get update && apt-get install app
-RUN apt-get update && apt-get install apache2
ADD/COPY: Nos permite agregar o copiar archivos desde el equipo local a la imagen
-ADD FILE.ext /DIR/DIR/DIR
-ADD index.html /var/www/html
EXPOSE: Nos permite exponer por defecto un puerto para el contenedor
-EXPOSE NUM-PUERTO
-EXPOSE 8080
CDM: Ejecutar una sentencia o accion por defecto (FOREGROUND) al crear el contenedor es finalidad
-CDM ["/usr/sbin/apache2", "-D", "FOREGROUND"]
Conoce sobre tecnología de la información, soluciones Linux, configuración de servicios GNU/Linux, hacking ético y seguridad informática.
lunes, 16 de septiembre de 2019
Crear imagen en Docker a partir de un DockerFile
En este espacio voy a detallar como se crea una imagen a apartir de un archivo DockerFile
Primero entramos en un terminal y creamos un directorio donde vamos a crear nuestro archivo
#cd /home/usuario/
#mkdir testdocker
Entramos en el directorio creado anteriormente
#cd testdocker/
Procedemos a creamos el archivo Dockerfile
#nano Dockerfile
Y agregamos el siguiente contenido del DockerFile
FROM ubuntu:latest
RUN apt-get -y update; \
apt-get -y upgrade; \
apt-get -y install apt-utils \
nano \
htop;
RUN apt-get -y install dstat
CMD ["bash"]
Una vez guardado el Dockerfile procedemos a crear la imagen con el siguiente comando
Ejemplo sintaxis
#docker build -t "nameimage:dockerfile"
Creacion de la Imagen
#docker build -t "imgubuntu:dockerfile"
Para verificar la cracion de la imagen colocamos
#docker images
Ahora vamos a crear un container a a partir de la imagen creada con un dockerfile con el siguiente comando
Ejemplo sintaxis
#docker run -dti --name name-container ID-imagen
Creación del container
#docker run -dti --name contubuntu 02f37139ae36
Consultamos el container
#docker ps
INER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c83e738fb69e 02f37139ae36 "bash" 22 seconds ago Up 19 seconds contubuntu
Vamos acceder al contenedor y verificar las aplicaciones instaladas
Sintaxis
#docker exec -i -t name-container /bin/bash
Acceder al container
#docker exec -i -t contubuntu /bin/bash
Una vez dentro del container consultamos con un comando su instalacion
#dstat
Primero entramos en un terminal y creamos un directorio donde vamos a crear nuestro archivo
#cd /home/usuario/
#mkdir testdocker
Entramos en el directorio creado anteriormente
#cd testdocker/
Procedemos a creamos el archivo Dockerfile
#nano Dockerfile
Y agregamos el siguiente contenido del DockerFile
FROM ubuntu:latest
RUN apt-get -y update; \
apt-get -y upgrade; \
apt-get -y install apt-utils \
nano \
htop;
RUN apt-get -y install dstat
CMD ["bash"]
Una vez guardado el Dockerfile procedemos a crear la imagen con el siguiente comando
Ejemplo sintaxis
#docker build -t "nameimage:dockerfile"
Creacion de la Imagen
#docker build -t "imgubuntu:dockerfile"
Para verificar la cracion de la imagen colocamos
#docker images
Ahora vamos a crear un container a a partir de la imagen creada con un dockerfile con el siguiente comando
Ejemplo sintaxis
#docker run -dti --name name-container ID-imagen
Creación del container
#docker run -dti --name contubuntu 02f37139ae36
Consultamos el container
#docker ps
INER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c83e738fb69e 02f37139ae36 "bash" 22 seconds ago Up 19 seconds contubuntu
Vamos acceder al contenedor y verificar las aplicaciones instaladas
Sintaxis
#docker exec -i -t name-container /bin/bash
Acceder al container
#docker exec -i -t contubuntu /bin/bash
Una vez dentro del container consultamos con un comando su instalacion
#dstat
viernes, 13 de septiembre de 2019
Como obtener informacion de un container Docker
Para obtener información de los container de docker como ID, fecha de creación, estado del container, imagen que utiliza, IP, etc, se debe correr el siguiente comando
#docker inspect CONTAINER_ID
#docker inspect CONTAINER_ID | grep "campo_a_consultar"
#docker inspect CONTAINER_ID | grep "IPAddress"
#docker inspect CONTAINER_ID
#docker inspect CONTAINER_ID | grep "campo_a_consultar"
#docker inspect CONTAINER_ID | grep "IPAddress"
Guardar y restaurar una imagen en Docker
En este articulo vamos a ver como podemos guardar una imagen de docker y restaurarla en otro servidor
Primero procedemos a listar las imágenes que tenemos actualmente en nuestro servidor docker
#docker images
arrojaría lo siguiente
GUARDAR
Procedemos a comprimir la imagen, vamos a trabajar la imagen de nginx,
entramos al directorio donde guardamos las imágenes y con el siguiente comando la comprimimos
#cd /var/lib/docker/images
Y corremos el siguiente comando
#docker save nombre-de-imagen | gzip > nombre-de-imagen.tar.gz
Ahora procedemos a guardar el container
#docker save -o /ruta/nombre-del-container.tar nombre-del-container
Puedes utilizar este comando
#docker save nombre-del-container > /ruta/nombre-del-container.tar
RESTAURAR
Como ultimo paso vamos a restaurar la copia en el servidor que deseamos con el siguiente comando
#docker load -i /ruta/nombre-del-container.tar
Puedes utilizar este comando
#docker load < /ruta/nombre-del-container.tar
Debemos ubicarnos en el directorio donde guardamos las imágenes con el siguiente comando
#cd /var/lib/docker/images
Y ejecutar el siguiente comando
#docker load -i nombre-de-imagen.tar.gz
Primero procedemos a listar las imágenes que tenemos actualmente en nuestro servidor docker
#docker images
arrojaría lo siguiente
GUARDAR
Procedemos a comprimir la imagen, vamos a trabajar la imagen de nginx,
entramos al directorio donde guardamos las imágenes y con el siguiente comando la comprimimos
#cd /var/lib/docker/images
Y corremos el siguiente comando
#docker save nombre-de-imagen | gzip > nombre-de-imagen.tar.gz
Ahora procedemos a guardar el container
#docker save -o /ruta/nombre-del-container.tar nombre-del-container
Puedes utilizar este comando
#docker save nombre-del-container > /ruta/nombre-del-container.tar
RESTAURAR
Como ultimo paso vamos a restaurar la copia en el servidor que deseamos con el siguiente comando
#docker load -i /ruta/nombre-del-container.tar
Puedes utilizar este comando
#docker load < /ruta/nombre-del-container.tar
Debemos ubicarnos en el directorio donde guardamos las imágenes con el siguiente comando
#cd /var/lib/docker/images
Y ejecutar el siguiente comando
#docker load -i nombre-de-imagen.tar.gz
viernes, 6 de septiembre de 2019
Como instalar Docker en Debian
Verificamos la version del kernel
#uname -rm
Verificamos la version del sistema operativo
#lsb_release –a
Actualizar el índice de paquetes
#apt-get update
Instalacion de paquetes complementarios
#apt-get install -y --no-install-recommends \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual
IMPORTANTE : Al usar comandos con la opción -y todas las preguntas interactivas se
contestan automáticamente con “Sí”. La opción --no-install-recommends impide que Linux
instale de forma automática los paquetes recomendados.
Instalacion de herramientas basicas
apt-get install htop multitail aptitude locate net-tools open-vm-tools ssh
Instalacion de herramientas necesarias para instalar docker
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
Asignando permisos al usuario en el grupo de docker
usermod -aG docker username
Instalamos la clave del repositorio oficial de docker en nuestro gestor de paquetes para posteriormente proceder a la descarga del software
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
Verificación de la clave con
apt-key fingerprint 0EBFCD88
El resultado que podemos esperar es el siguiente
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <docker@docker.com>
sub 4096R/F273FCD8 2017-02-22
Ahora añadimos el repositorio en el fichero de sources de apt del sistema
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
Actualizar el índice de paquetes
apt-get update
Procedemos con la instalación de docker con el comando
apt-get install docker-ce docker-ce-cli containerd.io
Una vez finalizada la instalacion procedemos con el registro en hub.docker
-> https://hub.docker.com/
Al tener usuario y password en https://hub.docker.com/ se procede a ir nuevamente al terminal y acceder de la siguiente forma para ingresar las credenciales
docker login
Luego de ingresar procedemos a crear nuestro primer container de pruebas
docker run hello-world
Debe arrojar lo siguiente:
# docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
#uname -rm
Verificamos la version del sistema operativo
#lsb_release –a
Actualizar el índice de paquetes
#apt-get update
Instalacion de paquetes complementarios
#apt-get install -y --no-install-recommends \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual
IMPORTANTE : Al usar comandos con la opción -y todas las preguntas interactivas se
contestan automáticamente con “Sí”. La opción --no-install-recommends impide que Linux
instale de forma automática los paquetes recomendados.
Instalacion de herramientas basicas
apt-get install htop multitail aptitude locate net-tools open-vm-tools ssh
Instalacion de herramientas necesarias para instalar docker
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
Asignando permisos al usuario en el grupo de docker
usermod -aG docker username
Instalamos la clave del repositorio oficial de docker en nuestro gestor de paquetes para posteriormente proceder a la descarga del software
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
Verificación de la clave con
apt-key fingerprint 0EBFCD88
El resultado que podemos esperar es el siguiente
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <docker@docker.com>
sub 4096R/F273FCD8 2017-02-22
Ahora añadimos el repositorio en el fichero de sources de apt del sistema
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
Actualizar el índice de paquetes
apt-get update
Procedemos con la instalación de docker con el comando
apt-get install docker-ce docker-ce-cli containerd.io
Una vez finalizada la instalacion procedemos con el registro en hub.docker
-> https://hub.docker.com/
Al tener usuario y password en https://hub.docker.com/ se procede a ir nuevamente al terminal y acceder de la siguiente forma para ingresar las credenciales
docker login
Luego de ingresar procedemos a crear nuestro primer container de pruebas
docker run hello-world
Debe arrojar lo siguiente:
# docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
jueves, 5 de septiembre de 2019
Creando un pipeline usando dockerfile en un jenkinsfile
Mediante este ejemplo basico te explicare como crear un pipeline en jenkins utilizando un dockerfile
Primero creamos el archivo dockerfile
nano /proyect/dockerfile
Incorporamos el contenido del archivo
FROM ubuntu:16.04
MANTAINER khernandez khernandez@gmail.comandos
RUN apt-get update
RUN apt-get -y install apache2
RUN apt-get install wget
RUN apt-get unzip
RUN wget http://github.com/proyecto/directorio/archivos/file.zip
RUN unzip file.zip
RUN cp -a /directorio/archivos/* var/www/html
EXPOSE 82
CDM /usr/sbin/apache2ctl -D FOREGROUND
Luego creamos el archivo jenkinsfile
nano /proyect/jenkinsfile
EJEMPLO :
pipeline {
agent any
stage {
stage ('Example') {
steps {
echo 'Hello world'
}
}
}
}
Colocamos el contenido del archivo, incorporamos el agente dockerfile en el archivo jenkinsfile
pipeline {
agent {
dockerfile true
}
stage {
stage ('Prueba') {
steps {
echo 'Verificando archivo'
sh 'cat /var/www/html'
}
}
}
}
Primero creamos el archivo dockerfile
nano /proyect/dockerfile
Incorporamos el contenido del archivo
FROM ubuntu:16.04
MANTAINER khernandez khernandez@gmail.comandos
RUN apt-get update
RUN apt-get -y install apache2
RUN apt-get install wget
RUN apt-get unzip
RUN wget http://github.com/proyecto/directorio/archivos/file.zip
RUN unzip file.zip
RUN cp -a /directorio/archivos/* var/www/html
EXPOSE 82
CDM /usr/sbin/apache2ctl -D FOREGROUND
Luego creamos el archivo jenkinsfile
nano /proyect/jenkinsfile
EJEMPLO :
pipeline {
agent any
stage {
stage ('Example') {
steps {
echo 'Hello world'
}
}
}
}
Colocamos el contenido del archivo, incorporamos el agente dockerfile en el archivo jenkinsfile
pipeline {
agent {
dockerfile true
}
stage {
stage ('Prueba') {
steps {
echo 'Verificando archivo'
sh 'cat /var/www/html'
}
}
}
}
Suscribirse a:
Entradas (Atom)