Public | Automated Build

Last pushed: 2 years ago
Short Description
Short description is empty for this repo.
Full Description


A simple Apache2 container to serve as a base for web applications. Native Apache SSL support is included. Exposes ports 80 and 443. Sets enough environment variables so Apache can run in the foreground. Logs are sent to stdout and stderr so can be picked up by docker logs.

In order to use this image effectively, you'll need to mount:

  • /var/www for your site content (e.g. using "-v /home/jdoe/mysite/:/var/www/")
  • /etc/ssl, optionally, if you wish to use SSL with real keys

A note on SSL

As per the defaults, Apache will use the bundled "snakeoil" key when serving SSL. Obviously this isn't sufficient or advisable for production, so you'll want to mount your real keys onto /etc/ssl/. If you name them "certs/ssl-cert-snakeoil.pem" and "private/ssl-cert-snakeoil.key", you'll be able to get by with the default config. Otherwise, you'll want to include a revised site definition. If you don't want to use SSL, you can avoid forwarding port 443 when launching the container (see below).

Simple Examples

Assuming you have your content at /home/jdoe/mysite/, the below will be sufficient to serve it. Note that many Docker users encourage mounting data from a storage container, rather than directly from the filesyetem.

  • "It works!": docker run -p 80:80 -p 443:443 -d emiller/apache and browse to the host's IP address using http or https
  • Serving actual content with SSL support: docker run -p 80:80 -p 443:443 -v /home/jdoe/mysite/:/var/www/ -d emiller/apache
  • ... without SSL support: docker -p 80:80 -v /home/jdoe/mysite/:/var/www/ -d emiller/apache
  • ... using non-standard ports: docker -p 8080:80 -p 8443:443 -v /home/jdoe/mysite/:/var/www/ -d emiller/apache

Thanks to eboraas for helpful explanation:

Docker Pull Command
Source Repository