Cómo construir su propia imagen de Docker en Linux

¿ Alguna vez ha querido crear su propia imagen de Docker ? Resulta que, con algo llamado "Dockerfile", puede hacerlo. En esta guía, veremos cómo crear su propia imagen de Docker.

Cómo instalar Docker en Linux

Deberá tener Docker instalado en su servidor Linux antes de intentar crear una nueva imagen. Afortunadamente, Docker es fácil de instalar en una amplia variedad de sistemas operativos Linux. En esta guía, nos centraremos en Ubuntu, Debian , Arch Linux, Fedora y OpenSUSE .

Para instalar Docker, abre una terminal. Una vez que está abierto, la instalación está lista para comenzar. Siga las instrucciones de instalación que se describen a continuación que coincidan con el sistema operativo Linux que utiliza.

Ubuntu/Debian

Primero deberá actualizar el índice de software en su sistema Ubuntu/Debian. Para hacer eso, ejecute el comando de actualización apt a continuación.

sudo apt actualizar

Ahora debe instalar el paquete de transporte HTTPS para instalar a través de HTTPS. También deberá instalar Curl y algunos otros paquetes. Estos paquetes se pueden instalar con el comando apt install .

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Con los paquetes instalados, es hora de habilitar la clave Docker GPG en su sistema Ubuntu/Debian. Esta clave garantiza que sea seguro instalar paquetes en Ubuntu.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Con la clave GPG habilitada, es hora de habilitar el repositorio de Docker. Para hacer esto, ejecute el siguiente comando de eco en una terminal.

echo "deb [arch=amd64 firmado-por=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) estable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Cuando haya habilitado el repositorio de Docker, vuelva a ejecutar el comando de actualización apt para actualizar el índice de software.

sudo apt actualizar

Finalmente, puede instalar los paquetes de Docker que necesita en Ubuntu o Debian.

sudo apt install docker-ce docker-ce-cli containerd.io

arco linux

Si usa Arch Linux, simplemente puede ejecutar el comando pacman -S e instalar el paquete "docker" para que Docker funcione en su sistema.

sudo pacman -S ventana acoplable

Con el paquete Docker instalado en su sistema Arch, ejecute los siguientes comandos systemctl para habilitar el software.

sudo systemctl habilita la ventana acoplable sudo systemctl inicia la ventana acoplable

Fedora

Hacer que Docker funcione en Fedora es bastante sencillo. Para comenzar, use el comando dnf install para instalar el software en su sistema.

sudo dnf instalar ventana acoplable

Una vez que el paquete esté instalado en su sistema Fedora, actívelo con systemd.

sudo systemctl habilita la ventana acoplable sudo systemctl inicia la ventana acoplable

abrirSUSE

Para que Docker funcione en OpenSUSE, debe agregar el repositorio de Docker.

sudo zypper addrepo https://download.docker.com/linux/opensuse/$(awk -F= '/^VERSION_ID/{print $2}' /etc/os-release)/x86_64/stable docker

A continuación, actualice Zypper e instale el software.

actualizar sudo zypper

sudo zypper install docker-ce

Finalmente, habilite Docker en su sistema con systemd.

sudo systemctl habilita la ventana acoplable sudo systemctl inicia la ventana acoplable

Cómo elegir tu imagen base

Cada imagen de Docker tomada de DockerHub se crea con una imagen base. Por lo tanto, deberá elegir una imagen base para su contenedor Docker. En esta guía, usaremos Ubuntu, ya que es uno de los sistemas operativos Linux más compatibles.

En esta guía, le mostraremos un ejemplo de cómo crear una imagen de Drupal 10 con Ubuntu 22.04. Sin embargo, estas instrucciones de compilación se pueden aplicar a cualquier cosa que desee crear, desde aplicaciones web hasta programas de Python, etc.

Para comenzar, abra el editor de texto Nano en una terminal. Usarás Nano para crear tu propio Dockerfile.

nano -w ~/dockerfile

Dentro del editor de texto Nano, ingrese el siguiente código para especificar que desea usar Ubuntu. Para obtener Ubuntu 22.04, especifíquelo. Si desea utilizar una versión diferente de Ubuntu, puede encontrar información aquí .

# Use the official Ubuntu base image
FROM ubuntu:22.04

Cómo configurar el directorio de trabajo

Debe configurar un directorio de trabajo en su contenedor Docker. El directorio de trabajo es donde se implementa la aplicación en Ubuntu en el contenedor. En este ejemplo, trabajaremos con Drupal 10. Drupal es una aplicación web, por lo que necesitaremos configurar WORKDIR como /var/www/html/.

En el editor de texto Nano, presione la tecla Intro para hacer un espacio. Luego, pegue el siguiente código.

# Set the working directory in the container WORKDIR /var/www/html

Cómo instalar las dependencias del programa

La aplicación que implementa en su imagen de Docker debe cumplir con sus dependencias. Si no se instalan las dependencias correctas en la imagen, no funcionará. Estamos creando una imagen de Drupal 10 basada en Ubuntu 22.04, por lo que debemos agregar todas las dependencias de Drupal 10 al archivo.

En el editor de texto Nano, presione la tecla Intro para hacer un espacio. Luego, pegue el siguiente código.

# Install dependencies RUN apt-get update && apt-get install -y \ apache2 \ php \ libapache2-mod-php \ php-curl \ php-gd \ php-intl \ php-mbstring \ php-mysql \ php-pgsql \ php-xml \ php-zip \ unzip

Cómo copiar el código del programa

El siguiente paso en el proceso es proporcionar su archivo Docker con el código del programa. Una vez más, estamos usando Drupal 10 como ejemplo. Por lo tanto, debemos proporcionar al Dockerfile los medios para descargar y extraer Drupal 10.

En el editor de texto Nano, presione la tecla Intro para crear una nueva línea. Luego, agregue el siguiente código para que su Dockerfile pueda descargar Drupal 10.

# Download and install Drupal RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \ tar -xvf drupal-10.2.tar.gz && \ mv drupal-10.2 .

Cómo exponer los puertos

Cada vez que implementa un contenedor Docker, accede a los puertos. Por ejemplo, si ejecuta el contenedor Syncthing predeterminado, expone el puerto 8384. ¿Nextcloud? Puerto 8080 y 80. Su contenedor necesita exponer los puertos correctos para que funcione correctamente.

Primero, averigüe a qué puertos necesita acceder el programa que está implementando. En este ejemplo, estamos implementando Drupal 10. Como Drupal 10 es un sistema CMS para un servidor web, necesita el puerto 80. Entonces, en el archivo de texto Nano, exponemos el puerto 80.

# Expose the Drupal port EXPOSE 80

Cómo configurar el comando predeterminado

Debe configurar el comando predeterminado en su Dockerfile para que cuando su imagen se cree e implemente, automáticamente comience a ejecutar el programa. En nuestro ejemplo, queremos que Drupal 10 se inicie instantáneamente una vez que se implemente el contenedor, por lo que debemos agregar un comando de inicio al Dockerfile.

En el editor de texto Nano, presione Entrar para crear un nuevo espacio en el archivo. Luego, pegue el siguiente código.

# Start Apache in the foreground CMD ["apache2ctl", "-D", "FOREGROUND"]

Cuando haya agregado este último código al archivo, guárdelo presionando Ctrl + O y salga del editor de texto Nano con Ctrl + X. El Dockerfile debería verse como el siguiente código.

Nota: este es un Dockerfile de ejemplo. Puede usar el ejemplo de Drupal como referencia para crear el suyo propio para cualquier aplicación que desee.

FROM ubuntu:22.04

# Set the working directory
WORKDIR /var/www/html

# Install dependencies
RUN apt-get update && apt-get install -y \
apache2 \
php \
libapache2-mod-php \
php-curl \
php-gd \
php-intl \
php-mbstring \
php-mysql \
php-pgsql \
php-xml \
php-zip \
unzip


# Download and install Drupal
RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \
tar -xvf drupal-10.2.tar.gz && \
mv drupal-10.2 .


# Expose the Drupal port
EXPOSE 80

# Start Apache in the foreground
CMD ["apache2ctl", "-D", "FOREGROUND"]

Cómo construir la imagen

Para compilar su nueva imagen de Docker con el Dockerfile que creó, ingrese el siguiente comando de compilación de docker .

sudo docker build -t my-docker-image .

El comando anterior construirá su imagen de Docker.

Cómo implementar la imagen

Para implementar su nueva imagen en un contenedor, debe usar el comando de ejecución de la ventana acoplable . Por ejemplo, para ejecutar la imagen de Ubuntu de Drupal 10 recién creada en el puerto 80, haga lo siguiente.

sudo docker run -d --name my-drupal-container -p 80:80 my-docker-image

Dejar un comentario

Cómo configurar Pi-hole DNS-over-HTTPS en Ubuntu Server 24.04

Cómo configurar Pi-hole DNS-over-HTTPS en Ubuntu Server 24.04

Configure Pi-hole en Ubuntu Server 24.04 para usar DNS-over-HTTPS con dnscrypt-proxy, luego verifique el servidor local y evite conflictos DNS comunes.

Cómo solucionar el problema de que la interfaz gráfica de YaST no se inicie a través del reenvío SSH X11

Cómo solucionar el problema de que la interfaz gráfica de YaST no se inicie a través del reenvío SSH X11

Solucione los fallos de la interfaz gráfica de usuario de YaST mediante el reenvío SSH X11. Pruebe DISPLAY, corrija el error Qt XIO documentado, compruebe la configuración SSH y cambie a ncurses cuando sea necesario.

Cómo configurar un servidor SUSE RMT local (sustituto de SMT)

Cómo configurar un servidor SUSE RMT local (sustituto de SMT)

Configura SUSE RMT en SLES 15, sincroniza los metadatos de SCC, replica los repositorios seleccionados, registra los clientes a través de HTTPS y comprende las limitaciones de la migración desde SMT.

Solucionar el problema de los controladores de la tarjeta de sonido no detectados en Pardus Linux 23

Solucionar el problema de los controladores de la tarjeta de sonido no detectados en Pardus Linux 23

Solucione el problema de la tarjeta de sonido que falta en Pardus Linux 23. Compruebe la detección de ALSA, los módulos del kernel, los servicios de audio, los perfiles de salida, el firmware y las actualizaciones de forma segura.

Solucionar el problema de resolución de pantalla atascada en 1024x768 en una máquina virtual Pardus KVM

Solucionar el problema de resolución de pantalla atascada en 1024x768 en una máquina virtual Pardus KVM

Solucione el problema de una máquina virtual Pardus KVM atascada en 1024x768 comprobando la GPU virtual, el agente SPICE, la sesión X11 o Wayland y verificando que los modos de visualización superiores sean correctos.

Cómo montar automáticamente un directorio SSHFS remoto al arrancar en Debian

Cómo montar automáticamente un directorio SSHFS remoto al arrancar en Debian

En Debian, se monta automáticamente un directorio SSHFS remoto al arrancar el sistema utilizando SSH basado en claves, /etc/fstab, opciones de red de systemd, automontaje y pasos de verificación.

Solucionar el error "No se puede asignar memoria" durante una actualización del sistema SLES

Solucionar el error "No se puede asignar memoria" durante una actualización del sistema SLES

Solucione el problema "No se puede asignar memoria" durante una actualización de SLES. Compruebe la RAM, el espacio de intercambio, los registros de OOM y los límites de procesos, y luego recupere el sistema sin interrumpir las transacciones de paquetes.

Solucionar problemas de calibración de la pantalla táctil en tabletas con Harmonica OS: Elegir la solución adecuada para Linux

Solucionar problemas de calibración de la pantalla táctil en tabletas con Harmonica OS: Elegir la solución adecuada para Linux

Solucione problemas de desplazamiento táctil, rotación y mapeo de pantalla en tabletas Harmonica OS (HamoniKR). Compare las soluciones de X.Org y libinput, realice pruebas de forma segura y sepa cuándo la calibración no será suficiente.

Cómo configurar una partición SWAP cifrada en una instalación existente de Debian 12.

Cómo configurar una partición SWAP cifrada en una instalación existente de Debian 12.

Encripta una partición de intercambio existente de Debian 12 con dm-crypt, una clave aleatoria nueva en cada arranque, /etc/crypttab, /etc/fstab y pasos de verificación seguros.

Cómo monitorizar el estado de la unidad SMART en Ubuntu mediante alertas por correo electrónico

Cómo monitorizar el estado de la unidad SMART en Ubuntu mediante alertas por correo electrónico

Instala smartmontools en Ubuntu para monitorizar el estado de las unidades y enviar alertas SMART por correo electrónico. Comprueba la compatibilidad de los dispositivos, configura la entrega de correo, prueba las notificaciones y soluciona los fallos.