Novato de Docker aquí.
Estoy tratando de crear un contenedor acoplable para PostgreSQL en la instancia de AWS EC2.
Primero, para lograr la persistencia, uso el contenedor de volumen de datos . Aquí está el comando que usé para crear un contenedor de volumen de datos para mi base de datos PostgreSQL:
docker create -v /var/lib/postgresql/data --name postgres9.3.6-data busyboxLuego ejecuto el siguiente comando para crear el contenedor de PostgreSQL:
docker run --name postgres9.3.6 \ -p 5432:5432 \ -e POSTGRES_PASSWORD=password \ -e POSTGRES_USER=root \ -e POSTGRES_DB=db_name \ -d --volumes-from postgres9.3.6-data postgres:9.3.6Ejecuté esto en mi entorno local y luego traté de conectarme a través de un cliente de escritorio PostgreSQL y funcionó. Pude conectarme al db_name que está almacenado en el contenedor acoplable de PostgreSQL local.
Después de esto, ingresé a una de mis instancias EC2 en AWS. Y siguió el mismo flujo que describí anteriormente. Luego regresó al cliente de escritorio de PostgreSQL e intentó conectarse a él. Pero recibí el siguiente mensaje de error:
Conexión denegada. Verifique que el nombre de host y el puerto sean correctos y que el administrador de correo acepte conexiones TCP/IP.
¿Que me estoy perdiendo aqui?
Editar
Ya verifiqué y configuré listen_addresses en el archivo postgresql.conf para
listen_addresses='*'y agregó la siguiente línea al archivo pg_hba.conf:
host all all 0.0.0.0/0 md5Postgresql.conf y pg_hba.conf se ven bien. La ventana acoplable se ejecuta correctamente y publica el puerto postgresql. Verifique su regla de entrada EC2, probablemente no se permita el acceso al puerto 5432.
Debe editar postgresql.conf, establecer el parámetro listen_addresses en '*':
direcciones_escucha = '*'
Edite también pg_hba.conf en consecuencia.
También necesita proporcionar la identificación del host. iniciar sesión en el contenedor de postges por docker exec -it /bin/bash
abra el archivo de host y la última línea en el archivo es la identificación del host. el archivo está disponible en el directorio etc. y el nombre del archivo es host.
agregue use la identificación del host en lugar de 0.0.0.0