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

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

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 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!