<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pablo Bravo</title>
    <description>The latest articles on DEV Community by Pablo Bravo (@blosky01).</description>
    <link>https://dev.to/blosky01</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F816943%2F2f6046d5-f7d0-466e-a23e-fa7d067f0dd5.png</url>
      <title>DEV Community: Pablo Bravo</title>
      <link>https://dev.to/blosky01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/blosky01"/>
    <language>en</language>
    <item>
      <title>[ES] Tutorial de Docker para Principiantes: Contenerización Paso a Paso</title>
      <dc:creator>Pablo Bravo</dc:creator>
      <pubDate>Mon, 21 Aug 2023 14:56:33 +0000</pubDate>
      <link>https://dev.to/blosky01/tutorial-de-docker-para-principiantes-contenerizacion-paso-a-paso-199d</link>
      <guid>https://dev.to/blosky01/tutorial-de-docker-para-principiantes-contenerizacion-paso-a-paso-199d</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Docker&lt;/em&gt;&lt;/strong&gt; es una poderosa herramienta que simplifica la gestión y el despliegue de aplicaciones al empaquetarlas en contenedores. En este tutorial, aprenderás los conceptos básicos de Docker y cómo empezar a utilizarlo con ejemplos prácticos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Instalación de Docker&lt;/strong&gt;&lt;br&gt;
Descarga Docker Desktop e instálalo.&lt;br&gt;
&lt;a href="https://docs.docker.com/desktop/install/windows-install/"&gt;Instalación en Windows&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.docker.com/desktop/install/mac-install/"&gt;Instalación en macOS&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;em&gt;Instalación en Linux:&lt;/em&gt;&lt;br&gt;
Ejecuta estos comandos para instalar Docker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
sudo apt install docker.io
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inicia el servicio de Docker y configúralo para que se inicie automáticamente en el arranque:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl start docker
sudo systemctl enable docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Añade tu usuario al grupo "docker" para ejecutar comandos Docker sin sudo (requiere cerrar sesión e iniciar sesión nuevamente):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo usermod -aG docker $USER
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verifica la instalación:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker --version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Ejecución de tu Primer Contenedor&lt;/strong&gt;&lt;br&gt;
Hello World en Docker&lt;br&gt;
Para verificar que Docker esté funcionando correctamente, ejecutemos un contenedor de prueba:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Docker descargará la imagen "hello-world" desde Docker Hub y la ejecutará en un contenedor. Deberías ver un mensaje que confirma que Docker está funcionando correctamente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Trabajar con Imágenes&lt;/strong&gt;&lt;br&gt;
Buscar y Descargar Imágenes&lt;br&gt;
Docker utiliza imágenes para crear contenedores. Puedes buscar imágenes en Docker Hub y descargarlas con el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull nombre-de-la-imagen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por ejemplo, para descargar una imagen de Ubuntu, usa:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull ubuntu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Crear tu Propia Imagen&lt;br&gt;
Puedes crear tus propias imágenes personalizadas utilizando un archivo llamado Dockerfile. Aquí hay un ejemplo de Dockerfile para crear una imagen que ejecuta un servidor web Nginx:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Usa una imagen base
FROM nginx:latest

# Copia tu archivo HTML personalizado al contenedor
COPY mi-archivo-html.html /usr/share/nginx/html/index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Luego, construye tu imagen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build -t mi-servidor-web .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Subir una Imagen Personalizada a Docker Hub&lt;br&gt;
Si deseas compartir tu imagen personalizada, puedes subirla a Docker Hub:&lt;/p&gt;

&lt;p&gt;Crea una cuenta en &lt;a href="https://hub.docker.com/"&gt;Docker Hub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Inicia sesión desde la línea de comandos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Etiqueta tu imagen con tu nombre de usuario en Docker Hub:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker tag mi-servidor-web nombre-de-usuario/mi-servidor-web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sube tu imagen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker push nombre-de-usuario/mi-servidor-web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Gestionar Contenedores&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Listar y Ver Contenedores&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lista todos los contenedores en ejecución:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lista todos los contenedores, incluidos los detenidos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker ps -a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Detener y Eliminar Contenedores&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Detén un contenedor en ejecución:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker stop nombre-o-ID-del-contenedor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Elimina un contenedor (debe estar detenido):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker rm nombre-o-ID-del-contenedor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Ver Registros de Contenedores&lt;/strong&gt;&lt;/em&gt;
Muestra los registros de un contenedor:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker logs nombre-o-ID-del-contenedor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Persistencia de Datos&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Crear y Usar Volúmenes&lt;/strong&gt;&lt;/em&gt;
Para mantener datos importantes, como bases de datos, puedes crear y utilizar volúmenes en Docker.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Crea un volumen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker volume create nombre-del-volumen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Ejecuta un contenedor y monta el volumen:&lt;/strong&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -v nombre-del-volumen:/ruta-en-el-contenedor -d nombre-de-la-imagen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;6. Redes en Docker&lt;/strong&gt;&lt;br&gt;
Gestionar Redes en Docker&lt;br&gt;
Docker crea automáticamente una red para los contenedores, pero puedes crear tus propias redes para aislar contenedores o conectarlos.&lt;/p&gt;

&lt;p&gt;Lista las redes en Docker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker network ls
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Crea una red personalizada:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker network create nombre-de-la-red
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ejecuta un contenedor en una red específica:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run --network nombre-de-la-red -d nombre-de-la-imagen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;7. Docker Compose&lt;/strong&gt;&lt;br&gt;
Orquestar Múltiples Contenedores con Docker Compose&lt;br&gt;
Docker Compose es una herramienta para definir y ejecutar aplicaciones Docker con múltiples contenedores. Puedes definir la configuración de tus servicios en un archivo &lt;strong&gt;docker-compose.yml&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Ejemplo de un archivo docker-compose.yml para un WordPress:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3'
services:
   wordpress:
     image: wordpress
     ports:
       - "8080:80"
     environment:
       WORDPRESS_DB_PASSWORD: example
   mysql:
     image: mysql:5.7
     environment:
       MYSQL_ROOT_PASSWORD: example
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ejecuta la aplicación con Docker Compose:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;8. Conclusiones&lt;/strong&gt;&lt;br&gt;
¡Felicidades! Ahora tienes una comprensión sólida de los conceptos básicos de Docker. Puedes utilizar este tutorial como referencia mientras exploras más características y casos de uso avanzados de Docker. La contenerización simplificará el desarrollo y la implementación de aplicaciones, permitiéndote trabajar de manera más eficiente en entornos de desarrollo y producción. ¡Buena suerte con tus proyectos en Docker!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cualquier duda o sugerencia para próximos post serán totalmente bienvenidas!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>development</category>
      <category>virtualization</category>
      <category>containers</category>
    </item>
  </channel>
</rss>
