Creo firmemente en mantener limpio mi sistema host. Y los contenedores Docker son la solución perfecta para esto. Supongamos que está trabajando en una aplicación React con un backend Node/Express y un servidor MySQL para sus necesidades de base de datos. Normalmente, instalaría mysql en su sistema host, crearía una base de datos, crearía un usuario con una contraseña y le otorgaría privilegios de usuario para trabajar con esa base de datos.
En lugar de perder tiempo configurando esto cada vez para cada proyecto, simplemente uso una imagen de Docker para crear mi servidor de base de datos MySQL, para que esté listo, en funcionamiento y funcionando en unos segundos, con toda la configuración necesaria. alguna vez necesito.
Créame, una vez que descubra su flujo de trabajo utilizando esta ruta, nunca volverá a las viejas costumbres. Entonces, así es como lo hago de una manera muy simple y básica.
Si tiene algo de experiencia con Docker y desea omitir este tutorial y acceder directamente a una versión TLDR, este Gist sería mucho más rápido.
Para usar Docker, necesitamos Docker, ¡obvio! No entraré en detalles sobre la instalación de Docker aquí. Si no se siente cómodo con una CLI o utiliza Windows/MacOS, opte por Docker Desktop, que hará todo el trabajo pesado detrás de escena.
Los usuarios de Linux también pueden instalar Docker Engine con el complemento Docker Compose o Docker Desktop si no lo desean.
Normalmente no necesitas una cuenta en Docker Hub para descargar imágenes públicas como la imagen oficial de MySQL que usaremos.
Hay dos formas de hacer esto.
Para poder ejecutar directamente el contenedor usando el comando docker run, primero deberá haber descargado la imagen de MySQL en su sistema. Para llevar la imagen a su sistema, simplemente use este comando:
docker pull mysql
Nota: Si no necesita una versión particular de MySQL, este comando descargará la última (la que tiene la etiqueta más reciente). Puede explorar más etiquetas y versiones desde Docker Hub si lo necesita.
Una vez que Docker haya terminado de descargarse, podrás ver la imagen descargada de esta manera:
docker image ls
Ahora, para ejecutar el contenedor, debe agregar muchas banderas con el comando docker run. Puedes visitar este enlace para consultar todas las opciones que tienes. También debe recordar todas las banderas que necesita agregar, ya que faltar algunas podría generar errores o iniciar un contenedor incapaz.
Además, cada vez que desees ejecutar tu contenedor, tendrás que extraer este comando largo del historial de la terminal o escribirlo nuevamente. No tiene sentido eso.
Esta es la razón por la que NO recomiendo este enfoque. Hay una manera mejor.
Crearemos un archivo Docker Compose que le indicará a Docker lo que necesitamos al iniciar el contenedor. Una vez que todo está dispuesto en el archivo, iniciar el contenedor se convierte en pan comido.
Nota: Puedes crear tu archivo de redacción con cualquier nombre. Si usa su propio nombre o almacena su archivo de redacción en otras carpetas, deberá proporcionar una marca -f para que funcione. Alternativamente, si está ejecutando el comando desde la misma carpeta que su archivo, puede nombrar el archivo docker-compose.yaml.
Un archivo Docker Compose es un archivo YAML. El nuestro se verá así:
# This Docker Compose YAML deploys a MySQL database services: container-name: image: mysql # Official MySQL image from Docker Hub restart: always environment: # Note - Root password is mandatory for the container to run and grant privileges to our User. MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} # Same name as used in your project # DB User Details MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} ports: # Adjust this port as per your needs ->: - 3308:3306 # DB is available at localhost:3308 on the host. volumes: - ./volumes/db-mnt:/var/lib/mysql
Este archivo también está disponible en el Gist mencionado al principio.
Importante saber
Puedes crear este archivo en la misma carpeta donde está tu archivo de redacción, o puedes crearlo en cualquier lugar que desees, pero deberás proporcionar la ruta mientras llamas a docker-compose.
# Content of the Environment Variables file MYSQL_ROOT_PASSWORD=rootpassword MYSQL_DATABASE=nameofdatabase MYSQL_USER=dbusername MYSQL_PASSWORD=dbuserpassword
Una vez que tengamos todo esto en su lugar, simplemente podemos usar un pequeño comando y nuestra base de datos estará lista y lista para esperarnos.
docker-compose up -d
Ahora estás listo para establecer una conexión a la base de datos utilizando tus medios preferidos.
Y dado que hemos configurado nuestros contenedores para que se ejecuten desde un archivo de redacción, puede realizar una copia de seguridad de forma segura en un sistema git en su repositorio. Solo asegúrate de .gitignorar el archivo .env.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3