2. VIRTUALIZATION
HOST OS (MAC, WINDOWS, LINUX)
HYPERVISOR (VBOX, VMWARE, PARALLELS)
GUEST OS GUEST OS GUEST OS
WEBSERVER WEBSERVER WEBSERVER
3. DRAWBACKS
▸ Full guest OS (lots of software you don't need)
▸ Hardware simulation
▸ CPU (Scheduling, Protection ring)
▸ Memory (Virtual memory mapping)
▸ Disk
▸ Boot time
▸ Installation time
6. DOCKER CONTAINER
▸ A running instance of an image
▸ Has its own disk
▸ Has its own network
▸ Can expose ports to the host
▸ Runs a single process
▸ Resources (CPU, Memory) directly from the host
▸ Is not persistent!
7. DOCKER IMAGE
▸ Is based on another docker image
▸ Contains a projection of the complete filesystem
▸ Can be versionized
▸ Share the same layers (binary) with their base images
▸ Easy exchangeable
8. CONFIGURE DOCKERIZED SOFTWARE
▸ Handled by environment variables
▸ Variables are declared during runtime
▸ Default variables maybe encoded in the image
▸ Overwrite configuration files via mounted files
if (getenv('MYSQL_USER')) {
$GLOBALS['TYPO3_CONF_VARS']['DB']['username'] = getenv('MYSQL_USER');
}
if (getenv('MYSQL_PASSWORD')) {
$GLOBALS['TYPO3_CONF_VARS']['DB']['password'] = getenv('MYSQL_PASSWORD');
}
10. THINGS YOU SHOULD LOOK AT
▸ Dinghy HTTP-Proxy http://bit.ly/2bTm5L6
▸ Project website https://webdevops.io/
▸ Get support on slack https://webdevops.io/slack/
▸ Rancher http://rancher.com/rancher/