“cachalote negro” por en Sho Hatakeyama Unsplash Desde la llegada de Docker, rara vez me encuentro instalando software de desarrollo directamente en mi máquina local. Ya sean servidores de bases de datos (p. ej., Postgres), sistemas de almacenamiento en caché (p. ej., Redis, Memcache) o sistemas de mensajería (p. ej., Kafka), casi siempre trato de encontrar o crear una imagen acoplable adecuada para usar durante el desarrollo. La instalación del software es difícil. Y no tiene nada que ver con tu experiencia como desarrollador. Todos hemos visto una buena cantidad de conflictos de versiones, mensajes esotéricos de fallas de compilación y errores de dependencia faltantes cada vez que nos embarcamos en la tarea de instalar un nuevo software para usar. Hemos pasado innumerables horas copiando y pegando fragmentos de código de Stack Overflow en nuestro terminal y ejecutándolos con la esperanza de que uno de ellos resuelva mágicamente los problemas de instalación y haga que el software se ejecute. El resultado es principalmente desesperación, frustración y pérdida de productividad. Docker proporciona una salida a este lío al reducir la tarea de instalar y ejecutar software a tan solo dos comandos ( y ). En esta publicación, veremos este proceso en acción al observar paso a paso lo fácil y simple que es configurar una instalación de Postgres con Docker. docker run docker pull Tenga en cuenta que este no es un tutorial sobre Docker. Si tiene curiosidad sobre el funcionamiento interno de Docker y todo lo que puede hacer con él, lo animo a navegar por la web, ya que hay mucho material de calidad sobre el tema. Esta publicación asume que tiene una cuenta docker válida y un demonio docker ejecutándose. Si es completamente nuevo en Docker, le recomendaría comenzar . aquí Obtener la imagen de Docker de Postgres Para desplegar una imagen para la última versión estable de Postgres, simplemente ejecute docker pull postgres Esto desplegará la imagen de Postgres de la versión estable más reciente del oficial del concentrador acoplable de Postgres. Para desplegar una versión que no sea la última versión estable, podemos proporcionar un nombre de etiqueta de imagen apropiado para el comando anterior repositorio docker pull docker pull postgres:[tag_you_want] Cree un directorio para que sirva como el punto de montaje del host local para los archivos de datos de Postgres Si queremos conservar los datos generados por la instancia de Postgres que se ejecuta dentro de un contenedor más allá del ciclo de vida del contenedor, debemos asignar un punto de montaje local como un volumen de datos a una ruta adecuada dentro del contenedor. Por lo general, creo una carpeta de (podemos darle a la carpeta el nombre que queramos) en mi directorio de y luego creo subcarpetas para cada una de las aplicaciones para las que necesito crear puntos de montaje de volumen de datos. volúmenes inicio mkdir -p $HOME/docker/volumes/postgres Ejecute el contenedor de Postgres Iniciar el contenedor de Postgres es tan simple como ejecutar el comando docker run docker run --rm --name pg-docker -e POSTGRES_PASSWORD=docker -d -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data postgres Hemos proporcionado varias opciones para el comando de : ejecución de la ventana acoplable : elimina automáticamente el contenedor y su sistema de archivos asociado al salir. En general, si estamos ejecutando muchos contenedores a corto plazo, es una buena práctica pasar el indicador al comando para una limpieza automática y evitar problemas de espacio en disco. Siempre podemos usar la opción (que se describe a continuación) para conservar los datos más allá del ciclo de vida de un contenedor. — rm rm docker run v identificativo del contenedor. Podemos elegir cualquier nombre que queramos. Tenga en cuenta que dos contenedores existentes (incluso si están detenidos) no pueden tener el mismo nombre. Para reutilizar un nombre, debe pasar el indicador al comando o eliminar explícitamente el contenedor mediante el comando — nombre: Nombre rm docker run docker rm [nombre del contenedor]. Expone la variable de entorno de nombre con valor al contenedor. Esta variable de entorno establece la contraseña de superusuario para PostgreSQL. Podemos establecer en lo que queramos. Simplemente elijo que sea para demostración. Hay variables de entorno adicionales que puede configurar. Estos incluyen y establece el nombre de superusuario. Si no se proporciona, el nombre de superusuario por defecto es establece el nombre de la base de datos predeterminada para configurar. Si no se proporciona, el valor predeterminado es -e: POSTGRES_PASSWORD docker POSTGRES_PASSWORD docker POSTGRES_USER POSTGRES_DB. POSTGRES_USER postgres. POSTGRES_DB POSTGRES_USER. lanza el contenedor en modo separado o, en otras palabras, en segundo plano. -d: : vincula el puerto 5432 en localhost al puerto 5432 dentro del contenedor. Esta opción permite que las aplicaciones que se ejecutan fuera del contenedor puedan conectarse al servidor de Postgres que se ejecuta dentro del contenedor. -p : monte $HOME/docker/volumes/postgres en la máquina host en la ruta del volumen del lado del contenedor /var/lib/postgresql/data creado dentro del contenedor. Esto garantiza que los datos de Postgres persistan incluso después de que se elimine el contenedor. -v Conéctese a PostgreSQL Una vez que el contenedor está funcionando, conectarse a él desde una aplicación no es diferente a conectarse a una instancia de Postgres que se ejecuta fuera de un contenedor docker. Por ejemplo, para conectarnos usando podemos ejecutar psql psql -h localhost -U postgres -d postgres Con suerte, esta publicación ha demostrado lo fácil y sencillo que es comenzar a utilizar Postgres en Docker. Para la mayoría de las otras aplicaciones, el proceso es igual de simple. Entonces, la próxima vez que necesite instalar una pieza de software, piense en antes de llegar a o cualquiera que sea el comando para el administrador de paquetes de su sistema :) docker pull brew install, yum install, apt-get install