introduction to containers and docker for php developers

14
An Introduction to Containers and Docker for PHP Developers presented by Robert McFrazier 1

Upload: robert-mcfrazier

Post on 21-Mar-2017

292 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Introduction to Containers and Docker for PHP developers

An Introduction to Containers and Docker

for PHP Developerspresented by

Robert McFrazier

1

Page 2: Introduction to Containers and Docker for PHP developers

@rmcfrazier http://blog.robert.mcfrazier.com

Robert McFrazier

2

Page 3: Introduction to Containers and Docker for PHP developers

Agenda• What are Linux containers

• What is Docker

• What is Docker Compose

• Why use Vagrant

• Using Docker

• Creating a PHP development environment using Vagrant and Docker

• How the PHP community can use containers

3

Page 4: Introduction to Containers and Docker for PHP developers

Linux ContainersSoftware that interfaces with the Linux kernel containment

features.

Namespaces • Enable creating an abstraction of a particular global

system resource and make it appear as a separated instance to processes within a namespace.

Control Groups (cgroups) • The kernel uses cgroups to group processes for the

purpose of system resource management. Cgroups allocate CPU time, system memory, network bandwidth, or combinations of these among user-defined groups of tasks.

4

Page 5: Introduction to Containers and Docker for PHP developers

Linux Containers

Containers fall between a chroot and a full fledged virtual machine.

Application level containers have a best practice convention of one process per container.

5

Page 6: Introduction to Containers and Docker for PHP developers

Linux ContainersContainers offer less isolation compared to a VM because each

container shares the Linux kernel, and possibly binaries and libraries, but they also have a lower resource overhead.

6

Page 7: Introduction to Containers and Docker for PHP developers

Docker is a container technology that allows you to package an application with all of its dependencies into

a standardized unit for software development.

Docker allows applications to share the same Linux kernel as the Docker host. Applications need to be

bundled with any software not already installed on the Docker host.

DockerWhat is Docker ?

Page 8: Introduction to Containers and Docker for PHP developers

https://docs.docker.com/installation/

Instructions for installing Docker on 20 different OS/Platforms.

DockerInstalling Docker

Page 9: Introduction to Containers and Docker for PHP developers

Compose is a tool for defining and running multi-container applications with Docker.

You define a multi-container application, then spin your application up in a single command which does

everything that needs to be done to get it running.

Docker ComposeWhat is Docker

Page 10: Introduction to Containers and Docker for PHP developers

https://docs.docker.com/compose/install/

curl -L https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m`

> /usr/local/bin/docker-compose

Docker ComposeInstalling Docker

Page 11: Introduction to Containers and Docker for PHP developers

DockerContainer vs. Image

How are a container and an image different?

• An image is a read-only template used to create containers.

• Images are built. • Containers are started/stopped.

Page 12: Introduction to Containers and Docker for PHP developers

VagrantWhy include Vagrant?

• Vagrant is is used to supply a Linux Docker host. • Even if you are on a Linux OS can still use Vagrant, but

not required. • Vagrant also gives us Shared folders and make

forwarding ports easy.

Page 13: Introduction to Containers and Docker for PHP developers

Questions ?

Page 14: Introduction to Containers and Docker for PHP developers

@rmcfrazier http://blog.robert.mcfrazier.com

https://legacy.joind.in/16686

https://github.com/rmcfrazier/midwestphp_2016

Robert McFrazier

14