Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

800
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!