## Apache image maken

Voor het uitvoeren van Apache kunnen we de standaard image van DockerHub pullen, maar we kunnen ook onze eigen image bouwen. Hier kun je dan gelijk je eigen configuratie zetten en weet je zeker dat de container is ingesteld op de manier dat jij wilt.

Maken van je eigen image

Maak hiervoor een eigen directory

    mkdir apache

Maak nu met je favoriete editor een bestand met de naam `Dockerfile`

Hieronder een standaard opzet, waarbij de laatste versie van httpd(apache2) wordt gebruikt en er een html wordt geconfigureerd naar `/usr/local/apache2/htdocs/` dit is de plek waar de container de index.html uit gaat hosten.

    FROM httpd
    COPY ./public-html/ /usr/local/apache2/htdocs/

Wil je een versie specificeren? zie hieronder:

    FROM httpd:2.4
    COPY ./public-html/ /usr/local/apache2/htdocs/

Zorg er dus voor dat er een een map `public-html` is gemaakt in de directory `apache` met daarin je index.html

Je eigen image bouwen

    $ docker build -t my-apache2 .

Met de opdracht `docker images` kun je nu je eigen image zien

Je eigen container runnen

    docker run -dit --name my-apache-app -p 80:80 my-apache2

Met bovenstaande opdracht is je container gestart.

- -d Voer de container op de achtergrond uit en druk de container-ID af
- -i Interactive, houd STDIN open, zelfs als deze niet is bevestigd
- -t Wijs een pseudo-TTY toe
- --name Geeft de container een naam
- -p Publiceer de poort (en) van een container naar de host

Voor alle opties zie de officiële Docker documentatie

Docker run opties
Verwijzing naar de officiële documentatie

Container op een andere poort, bijvoorbeeld 8080

    docker run -dit --name my-apache-app -p 8080:80 my-apache2

Bezoek nu het IP-adres van de server en zie dat je website online is en daarmee de container gestart.

Met `docker ps` of `docker ps -a` zie je alle gestarte containers.