Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

801
Vistas
¿Cómo configurar el archivo mariadb docker-compose para usar otro puerto que no sea 3306?

No puedo hacer que mariadb use otro puerto que no sea 3306 cuando lo ejecuto en un contenedor docker usando un archivo docker-compose.

Ya leí la documentación de mariadb/docker, busqué en línea y realicé mis propios experimentos.

  1. archivo docker-compose:
 version: '3.1' services: db: image: mariadb restart: always environment: - MYSQL_ROOT_PASSWORD=mypassword - MYSQL_TCP_PORT=33030 - MYSQL_UNIX_PORT=33020 ports: - "33020:33020"
  1. archivo acoplable:
 FROM: mariadb: 10.3.14 COPY mydbscript.sql /docker-entrypoint-initdb.d/ EXPOSE 33020 CMD ["mysqld"]

Nunca usa el puerto 33020. Todavía usa el puerto 3306. ¿Cómo puedo pasar el puerto dinámicamente a través del archivo docker-compose en tiempo de ejecución?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Debe reemplazar el my.cnf predeterminado para especificar un puerto personalizado para MariaDB/MySQL:

 cd /where/your/docker-compose.yml/located docker run -it mariadb cat /etc/mysql/my.cnf > my.cnf # use any text editor your like to open my.cnf, search for "port = 3306" # and replace it to the port you like to have.

Configure su docker-compose.yml así:

 version: '3.1' services: db: image: mariadb restart: always volumes: - type: bind source: ./my.cnf target: /etc/mysql/my.cnf environment: - MYSQL_ROOT_PASSWORD=mypassword # add your other configurations here
over 4 years ago · Santiago Trujillo Denunciar

0

La imagen del contenedor está vinculada estáticamente a :3306 . Si desea cambiar esto, deberá crear una nueva imagen y configurar la base de datos para que se ejecute en otro lugar.

Sin embargo, Docker le permite mapear (publicar) esto como un puerto diferente :33020 .

La forma correcta de hacer esto es:

  • ventana acoplable-componer MYSQL_TCP_PORT=3306
  • ports: - "33020:3306"
  • Dockerfile EXPOSE 3306 (sin cambios)

Los contenedores (internamente) harán referencia correctamente a :3306 pero externamente (desde el host) la base de datos estará expuesta en :33020 .

NB Dentro de docker-compose (red), otros contenedores deben continuar haciendo referencia a la base de datos en el puerto :3306 .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda