/Docker

See Readme

Primary LanguageShellOtherNOASSERTION

Description This repository contains a collection of Docker configurations I've put together to meet my needs.

Directory Structure All frameworks have a simple directory structure that can be used to easily deploy web applications. Try it for yourself. See below for an example (all applications & services follow this basic structure).

/app - application directory (web root, etc), not modified at runtime
    index.html - example application
/config - configuration directory, not modified at runtime
    /init - init file directory, not modified at runtime
        application - executed at startup of application
    fastcgi-*.conf - included by nginx
    nginx-*.conf - included by nginx
    php-*.conf - included by php-fpm
/data - data directory, modified at runtime (can be a volume)
    /logs
        nginx.log # nginx log file
        php-fpm.log # php-fpm log file

Usage The following commands can be used to deploy some of the services offered by the Docker containers in this repository.

  • Applications

    • Adminer

        docker run --name="adminer" -d -e "VIRTUAL_HOST=adminer.example.com" --link mariadb:mariadb --link postgresql:postgresql maxexcloo/adminer
      
    • phpMyAdmin

        docker run --name="phpmyadmin" -d -e "VIRTUAL_HOST=phpmyadmin.example.com" --link mariadb:mariadb maxexcloo/phpmyadmin
      
    • Tiny Tiny RSS

        docker volume create --name="tiny-tiny-rss"
        docker run --name="tiny-tiny-rss" -it -e "VIRTUAL_HOST=tiny-tiny-rss.example.com" --link postgresql:postgresql -v tiny-tiny-rss:/data maxexcloo/tiny-tiny-rss
      
    • Wordpress

        docker volume create --name="wordpress"
        docker run --name="wordpress" -it -e "VIRTUAL_HOST=wordpress.example.com" --link mariadb:mariadb -v wordpress:/data maxexcloo/wordpress
      
  • Base

    • Debian

        docker run --name="debian" -it maxexcloo/debian bash
      
    • Ubuntu

        docker run --name="ubuntu" -it maxexcloo/ubuntu bash
      
  • Frameworks

    • EasyEngine

        docker run --name="easyengine" -it -p 80:80 -p 443:443 maxexcloo/easyengine
        docker exec -it easyengine bash
      
    • Java

        docker run --name="java" -it maxexcloo/java bash
      
    • nginx

        docker volume create --name="nginx"
        docker volume create --name="nginx-data"
        docker run --name="nginx" -it -e "VIRTUAL_HOST=example.com,www.example.com" -v nginx:/app -v nginx-data:/data maxexcloo/nginx
      
    • nginx + PHP-FPM

        docker volume create --name="nginx-php"
        docker volume create --name="nginx-php-data"
        docker run --name="nginx-php" -it -e "VIRTUAL_HOST=example.com,www.example.com" -v nginx-php:/app -v nginx-php-data:/data maxexcloo/nginx-php
      
    • nginx + Phusion Passenger

        docker volume create --name="nginx-passenger"
        docker volume create --name="nginx-passenger-data"
        docker run --name="nginx-passenger" -it -e "VIRTUAL_HOST=example.com,www.example.com" -v nginx-passenger:/app -v nginx-passenger-data:/data maxexcloo/nginx-passenger
      
    • Node.js

        docker run --name="node" -it maxexcloo/node bash
      
  • Services

    • Certbot

        docker run --name="certbot" -it -e "EMAIL=mail@example.com"-v docker-gen:/data maxexcloo/certbot
      
    • CouchPotato

        docker volume create --name="couchpotato"
        docker run --name="couchpotato" -it -e "VIRTUAL_HOST=couchpotato.example.com" -e "VIRTUAL_PORT=5050" -v couchpotato:/data maxexcloo/couchpotato
      
    • Directory Listing

        docker volume create --name="directory-listing"
        docker run --name="directory-listing" -it -v directory-listing:/data maxexcloo/directory-listing
      
    • Docker Gen

        docker volume create --name="docker-gen"
        docker run --name="docker-gen" -it -v /var/run/docker.sock:/var/run/docker.sock -v docker-gen:/data maxexcloo/haproxy-config
      
    • HAProxy

        docker run --name="haproxy" -it -p 80:80 -p 43:443 -v docker-gen:/data maxexcloo/haproxy
      
    • MariaDB

        docker volume create --name="mariadb"
        docker run --name="mariadb" -it -e "MARIADB_USER=docker" -e "MARIADB_PASS=docker" -v mariadb:/data maxexcloo/mariadb
      
    • Minecraft

        docker volume create --name="minecraft"
        docker run --name="minecraft" -it -e "MEMORY=1024" -p 25565:25565 -v minecraft:/data maxexcloo/minecraft
      
    • OpenSSH

        docker run --name="openssh" -it -p 22:22 maxexcloo/openssh
      
    • OpenVPN

        docker volume create --name="openvpn"
        docker run --name="openvpn" -it -p 443:443 -p 1194:1194/udp -v openvpn:/data maxexcloo/openvpn
        docker run --name="openvpn" -it -e "VIRTUAL_HOST=openvpn.example.com" --rm maxexcloo/openvpn -v openvpn:/data /app/host
      
    • Plex Media Server

        docker volume create --name="plexmediaserver"
        docker run --name="plexmediaserver" -it -e "VIRTUAL_HOST=plexmediaserver.example.com" -e "VIRTUAL_PORT=32400" -p 32400:32400 -v plexmediaserver:/data maxexcloo/plexmediaserver
      
    • PostgreSQL

        docker volume create --name="postgresql"
        docker run --name="postgresql" -it -v postgresql:/data maxexcloo/postgresql
      
    • ReadyMedia

        docker volume create --name="readymedia"
        docker run --name="readymedia" -it -p 1900:1900/udp -p 8200:8200 -v readymedia:/data maxexcloo/readymedia
      
    • SABnzbd

        docker volume create --name="sabnzbd"
        docker run --name="sabnzbd" -it -e "VIRTUAL_HOST=sabnzbd.example.com" -e "VIRTUAL_PORT=8080" -v sabnzbd:/data maxexcloo/sabnzbd
      
    • SickBeard

        docker volume create --name="sickbeard"
        docker run --name="sickbeard" -it -e "VIRTUAL_HOST=sickbeard.example.com" -e "VIRTUAL_PORT=8081" -v sickbeard:/data maxexcloo/sickbeard
      
    • ZNC

        docker volume create --name="znc"
        docker run --name="znc" -it -e "VIRTUAL_HOST=znc.example.com" -e "VIRTUAL_PORT=6667" -p 6667:6667 -v znc:/data maxexcloo/znc