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

360
Vistas
Docker-compose no puede iniciar el servidor apache

Cuando sudo docker-compose up dentro de mi directorio, aparece este error. Estoy tratando de hacer un contenedor, que aloje un sitio web php, donde puedas hacer whoami en él. Gracias

 (13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80 | no listening sockets available, shutting down | AH00015: Unable to open logs

archivo acoplable:

 FROM ubuntu:16.04 RUN apt update RUN apt install -y apache2 php libapache2-mod-php RUN useradd -d /home/cp/ -m -s /bin/nologin cp WORKDIR /home/cp COPY source . USER cp ENTRYPOINT service apache2 start && /bin/bash

docker-compose.yml

 version: '2' services: filebrowser: build: . ports: - '8000:80' stdin_open: true tty: true volumes: - ./source:/var/www/html - ./logs:/var/log/apache2
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Existe una regla general de larga data en los sistemas operativos similares a Unix que solo el usuario root puede abrir puertos "bajos" 0-1023. Dado que está intentando ejecutar Apache en el puerto HTTP predeterminado 80, pero lo está ejecutando como un usuario que no es root, obtiene el error "permiso denegado" que ve.

La respuesta absolutamente más fácil aquí es usar una imagen preconstruida que tenga PHP y Apache preinstalados. La imagen php de Docker Hub incluye una variante de esto. Puede usar un Dockerfile más simple:

 FROM php:7.4-apache # Has Apache, mod-php preinstalled and a correct CMD already, # so the only thing you need to do is COPY source /var/www/html # If you want to run as a non-root user, you can specify RUN useradd -r -U cp ENV APACHE_RUN_USER cp ENV APACHE_RUN_GROUP cp

Con el correspondiente docker-compose.yml

 version: '3' # version 2 vs 3 doesn't really matter services: filebrowser: build: . ports: - '8000:80' volumes: - ./logs:/var/log/apache2

Si desea construir cosas desde cero, la siguiente opción más fácil sería la directiva de usuario de Apache: haga que su contenedor comience como raíz (para que pueda vincularse al puerto 80) pero luego indique a Apache que cambie al usuario sin privilegios una vez que se haya iniciado. . La imagen estándar de php:...-apache tiene una opción para hacer esto por sí sola, como se muestra arriba.

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