SlideShare a Scribd company logo
Docker for Developers
Chris	Tankersley	
@dragonmantank	
SunshinePHP	2016	
SunshinePHP	2016	 1
Who Am I
•  PHP	Programmer	for	over	11	years	
•  Sysadmin/DevOps	for	around	9	years	
•  Using	Linux	for	more	than	15	years	
•  hGps://github.com/dragonmantank	
•  Author	of	“Docker	for	Developers”	
•  Reigning,	Defending,	Undisputed	PHP	
MTG	Champion	of	the	World	
SunshinePHP	2016	 2
Docker
SunshinePHP	2016	 3
What Is Docker?
“Docker	is	an	open	plaUorm	for	developers	and	sysadmins	to	build,	
ship,	and	run	distributed	applicaVons.	ConsisVng	of	Docker	Engine,	a	
portable,	lightweight	runVme	and	packaging	tool,	and	Docker	Hub,	a	
cloud	service	for	sharing	applicaVons	and	automaVng	workflows,	
Docker	enables	apps	to	be	quickly	assembled	from	components	and	
eliminates	the	fricVon	between	development,	QA,	and	producVon	
environments.”	
SunshinePHP	2016	 4	
hGps://www.docker.com/whaVsdocker/
What is it from a technical standpoint?
•  Docker	is	a	wrapper	around	Containers	
•  Docker	Engine	is	the	packaging	porVon	that	builds	and	runs	the	
containers	
•  Docker	Hub	allows	you	to	publish	images	for	others	to	use	
•  Docker	Machine	is	a	bare-metal	provisioning	tool	
•  Docker	Swarm	is	an	load-balancing	deployment	tool	
•  Docker	Compose	is	a	mulV-container	build	system	
SunshinePHP	2016	 5
Containers
SunshinePHP	2016	 6
Normal Bare-Metal Server
SunshinePHP	2016	 7	
CPU	 RAM	 HD	 Network	
OperaVng	System	
nginx	 PHP	 DB
Virtual Machines
SunshinePHP	2016	 8	
CPU	 RAM	 HD	 Network	
OperaVng	System	
nginx	 PHP	 DB	
OperaVng	System	
nginx	 PHP	 DB	
OperaVng	System	
Hypervisor
Containers
SunshinePHP	2016	 9	
CPU	 RAM	 HD	 Network	
OperaVng	System	
nginx	nginx	 PHP	 DB	 PHP	 DB
Docker can use many different containers
•  Since	0.9.0	it	supports:	
•  LXC	(Linux	Containers)	–	Started	with	LXC	when	it	was	released	
•  OpenVZ	
•  Systemd-nspawn	
•  libvert-sandbox	
•  Qemu/kvm	
•  BSD	Jails	
•  Solaris	Zones	
•  chroot	
SunshinePHP	2016	 10
Runs on *nix and Windows Hyper-V
•  No	naVve	container	drivers	for	OSX	
•  Amazon	has	ElasVc	Container	Service,	and	Microsoj	Azure	has	Azure	
Container	Service	
SunshinePHP	2016	 11
Sorry OSX Users
•  Docker	support	is	officially	maintained	through	Docker	Toolbox	
SunshinePHP	2016	 12
Docker Toolbox also is for Windows
SunshinePHP	2016	 13
Let’s use Docker
SunshinePHP	2016	 14
Assumptions
•  OSX	and	Windows	users	have	Docker	Toolbox	installed	
•  Linux	users	have	the	naVve	binaries	installed	
•  The	following	images	are	downloaded:	
•  php:7-fpm	
•  php:7-cli	
•  nginx	
•  mysql	
•  composer/composer	
SunshinePHP	2016	 15
Running a container
•  `docker	run`	will	run	a	container	
•  This	will	not	restart	an	exisVng	container,	just	create	a	new	one	
•  docker	run	[opVons]	IMAGE	[command]	[arguments]	
•  [opVons	]modify	the	docker	process	for	this	container	
•  IMAGE	is	the	image	to	use	
•  [command]	is	the	command	to	run	inside	the	container	
•  [arguments]	are	arguments	for	the	command	
SunshinePHP	2016	 16
Running a simple shell
SunshinePHP	2016	 17
Running Two Webservers
SunshinePHP	2016	 18
Some Notes
•  All	three	containers	are	100%	self	contained	
•  Docker	containers	share	common	ancestors,	but	keep	their	own	files	
•  `docker	run`	parameters:	
•  --rm	–	Destroy	a	container	once	it	exits	
•  -d	–	Run	in	the	background	(daemon	mode)	
•  -i	–	Run	in	interacVve	mode	
•  --name	–	Give	the	container	a	name	
•  -p	[local	port]:[container	port]	–	Forward	the	local	port	to	the	container	port	
SunshinePHP	2016	 19
Volumes
SunshinePHP	2016	 20
Modifying a running container
•  `docker	exec`	can	run	a	command	inside	of	an	exisVng	container	
•  Use	Volumes	to	share	data	
SunshinePHP	2016	 21
Persistent Data with Volumes
•  You	can	designate	a	volume	with	-v	
•  Volumes	can	be	shared	amongst	containers	
•  Volumes	can	mount	data	from	the	host	system	
SunshinePHP	2016	 22
Mounting from the host machine
SunshinePHP	2016	 23
Mounting from the host isn’t perfect
•  The	container	now	has	a	window	into	your	host	machine	
•  Permissions	can	get	screwy	if	you	are	modifying	in	the	container	
•  Most	things	it	creates	will	be	root	by	default,	and	you	probably	aren’t	root	on	
the	host	machine	
•  Host-mounted	volumes	are	not	portable	at	all	
•  Docker	Toolbox’s	VM	only	allows	mounVng	from	within	your	home	
directory	
SunshinePHP	2016	 24
Container Data Volumes
•  Uses	a	small	container	that	does	nothing	but	stores	data	
•  Have	our	app	containers	use	the	data	volume	to	store	data	
•  Use	‘editor	containers’	to	go	in	and	modify	data	when	needed	
SunshinePHP	2016	 25
Mounting Data Volumes
SunshinePHP	2016	 26
Why not run SSH inside of the container?
•  Well,	you	can…	
•  Docker	is	designed	for	one	command	per	container	
•  If	you	need	to	modify	data,	then	you	need	to	change	your	setup	
•  If	you	have	to	run	SSH,	then	you	need	a	way	to	run	SSH	and	your	
command	
SunshinePHP	2016	 27
Why go through the hassle?
•  Data	volumes	are	portable	
•  Data	volumes	are	safer	
•  Separates	the	app	containers	from	data	
•  ProducVon	can	use	a	data	volume,	dev	can	use	a	host	volume	
•  Our	app	containers	stay	small	
SunshinePHP	2016	 28
Network Linking
SunshinePHP	2016	 29
Docker Links
•  Allows	containers	to	‘see’	each	other	over	the	network	
•  Each	container	thinks	the	other	one	is	just	another	machine	
•  Containers	all	have	an	internal	network	address,	so	we	don’t	need	to	
expose	everything	through	the	host	
•  Currently	only	works	if	all	the	containers	are	on	one	machine,	Docker	
1.10	should	fix	that	
SunshinePHP	2016	 30
More Traditional Setup
SunshinePHP	2016	 31	
INTARWEBS	 Nginx		 PHP-FPM	
Data	Volume	
Port	9000	
Editor
Let’s Build It
SunshinePHP	2016	 32
More Notes!
•  We	can	now	rebuild	secVons	of	the	app	as	needed	
•  We	can	restart	nginx	without	impacVng	PHP	
•  We	can	extend	much	easier	
•  Linked	containers	will	not	update	if	they	are	stopped/started	
•  If	we	upgrade	PHP,	we	have	to	destroy/create	the	web_server	container	
again	
SunshinePHP	2016	 33
Creating your own Images
SunshinePHP	2016	 34
Dockerfile
•  Dockerfile	is	the	configuraVon	steps	for	an	image	
•  Can	be	created	from	scratch,	or	based	on	another	image	
•  Allows	you	to	add	files,	create	default	volumes,	ports,	etc	
•  Can	be	used	privately	or	pushed	to	Docker	Hub	
SunshinePHP	2016	 35
FROM	phusion/baseimage:0.9.10	
#	…	
CMD	["/sbin/my_init"]	
#	Nginx-PHP	Installation	
RUN	apt-get	update	
RUN	apt-get	install	-y	vim	git	curl	wget	build-essential	python-software-properties	
	 								php5-cli	php5-fpm	php5-mysql	php5-pgsql	php5-sqlite	php5-curl	
	 								php5-gd	php5-mcrypt	php5-intl	php5-imap	php5-tidy	mysql-client	
#	…	
RUN	mkdir											/var/www	
ADD	build/default			/etc/nginx/sites-available/default	
#	…	
EXPOSE	80	22	
VOLUME	/var/www	
VOLUME	/etc/nginx	
VOLUME	/etc/php/	
VOLUME	/var/log	
	
RUN	apt-get	clean	&&	rm	-rf	/var/lib/apt/lists/*	/tmp/*	/var/tmp/*	
SunshinePHP	2016	 36
Build it
docker	build	-t	tag_name	./	
•  This	runs	through	the	Dockerfile	and	generates	the	image	
•  We	can	now	use	the	tag	name	to	run	the	image	
SunshinePHP	2016	 37
Other Helpful Commands
SunshinePHP	2016	 38
Inspect a container
docker	inspect	[opVons]	CONTAINER_NAME	
•  Returns	a	JSON	string	with	data	about	the	container	
•  Can	also	query	
•  docker	inspect	-f	“{{	.NetworkSezngs.IPAddres	}}”	web_server	
•  Really	handy	for	scripVng	out	things	like	reverse	proxies	
SunshinePHP	2016	 39
Work with images
•  docker	pull	IMAGE	–	Pulls	down	an	image	before	using	
•  docker	images	–	Lists	all	the	images	that	are	downloaded	
•  docker	rmi	IMAGE	–	Deletes	an	image	if	it’s	not	being	used	
SunshinePHP	2016	 40
Docker Machine
SunshinePHP	2016	 41
What is Docker Machine?
•  A	provisioning	tool	that	is	used	to	set	up	a	box	with	Docker	
•  Used	in	Docker	Toolbox	to	create	the	VM	
•  Supports:	
•  EC2	
•  Azure	
•  Digital	Ocean	
•  Hyper-V	
•  OpenStack	
•  Virtualbox	
•  VMWare	
SunshinePHP	2016	 42
Creating a new machine
SunshinePHP	2016	 43
Why use it?
•  Makes	it	very	easy	to	spin	up	new	boxes	
•  Docker	Machine	handles	all	of	the	dirty	stuff	for	you	
•  Docker	Toolbox	users	are	already	using	it	
•  Integrates	with	Docker	Swarm	
•  It	is	not	necessarily	portable	
SunshinePHP	2016	 44
Docker Swarm
SunshinePHP	2016	 45
What is Docker Swarm?
•  Cluster	management	tool	developed	by	Docker	
•  Looks	like	a	machine	running	docker,	but	is	actually	many	machines	
SunshinePHP	2016	 46
Create a Swarm token
$	docker	run	--rm	swarm	create	2		
//...	
340122bb69c98825b4ac7094c87a07e21		
	
SunshinePHP	2016	 47
Create a Swarm Master
$	docker-machine	create	-d	virtualbox			
				--swarm			
				--swarm-master			
				--swarm-discovery	token://40122bb69c98825b4ac7094c87a07e21			
				swarm-master		
	
SunshinePHP	2016	 48
Add nodes to the swarm
docker-machine	create	-d	virtualbox			
				--swarm			
				--swarm-discovery	token://40122bb69c98825b4ac7094c87a07e21			
				swarm-node-1	
	
	
docker-machine	create	-d	virtualbox			
				--swarm			
				--swarm-discovery	token://40122bb69c98825b4ac7094c87a07e21			
				swarm-node-2	
	 SunshinePHP	2016	 49
Switch to the master
eval	$(docker-machine	env	--swarm	swarm-master)		
	
SunshinePHP	2016	 50
Add some containers
SunshinePHP	2016	 51
Docker Compose
SunshinePHP	2016	 52
What is Docker Compose?
•  MulV-container	orchestraVon	
•  A	single	config	file	holds	all	of	your	container	info	
•  Works	with	Docker	Swarm	and	a	few	other	tools,	like	Rancher	
SunshinePHP	2016	 53
Sample docker-compose.yml
phpserver:	
		build:	./docker/php	
		volumes:	
				-	/home/ctankersley/Projects/dockerfordevs:/var/www/	
		links:	
				-	mysqlserver	
	
mysqlserver:	
		image:	mysql	
		environment:	
				MYSQL_DATABASE:	dockerfordevs	
				MYSQL_ROOT_PASSWORD:	docker	
		volumes:	
				-	/var/lib/mysql	
	
nginx:	
		build:	./docker/nginx	
		ports:	
				-	"80:80"	
				-	"443:443"	
		links:	
				-	phpserver	
SunshinePHP	2016	 54
Docker Compose in Action
SunshinePHP	2016	 55
Let’s build an application
SunshinePHP	2016	 56
The Goal
•  A	three	container	applicaVon	with	nginx,	php,	and	mysql	
•  ApplicaVon	will	read	and	write	to	the	database	
•  Can	deploy	to	a	producVon	machine	
SunshinePHP	2016	 57
Folder Structure
SunshinePHP	2016	 58
A basic docker-compose.yml
phpserver:	
		image:	php:7-fpm	
		volumes:	
				-	./application:/var/www/	
	
nginx:	
		image:	nginx	
		ports:	
				-	"80:80"	
				-	"443:443"	
		volumes:	
				-	./nginx:/etc/nginx/conf.d/	
		links:	
				-	phpserver	
SunshinePHP	2016	 59
nginx/nginx.conf
server	{	
				listen	80;	
	
				root	/var/www/html;	
				index	index.html	index.htm	index.php;	
	
				access_log	/dev/stdout;	
				error_log	/dev/stderr;	
	
				location	/	{	
								try_files	$uri	$uri/	/index.html	/index.php?$query_string;	
				}	
	
				location	~	.php$	{	
								fastcgi_split_path_info	^(.+.php)(/.+)$;	
								fastcgi_pass	phpserver:9000;	
								fastcgi_param	SCRIPT_FILENAME	$document_root$fastcgi_script_name;	
								include	fastcgi_params;	
				}	
}	
SunshinePHP	2016	 60
Hello World
<?php	
	
echo	"Hello	World";	
SunshinePHP	2016	 61
Bringing it to life
SunshinePHP	2016	 62
Adding in MySQL
phpserver:	
		image:	php:7-fpm	
		volumes:	
				-		./application:/var/www/	
		links:	
				-	mysqlserver	
	
mysqlserver:	
		image:	mysql	
		environment:	
				MYSQL_DATABASE:	dockerfordevs	
				MYSQL_ROOT_PASSWORD:	docker	
		volumes:	
				-	/var/lib/mysql	
SunshinePHP	2016	 63
Docker Compose changes aren’t
automatic
•  You	will	need	to	stop,	then	bring	the	system	again	
•  docker-compose	stop	
•  docker-compose	up	
•  Docker	Compose	will	generally	only	restart	boxes	that	have	config	
changes	
•  Docker	Compose	will	not	automaVcally	fix	links	
SunshinePHP	2016	 64
Connecting to the database
<?php	
$hostname	=	'mysqlserver';	
$database	=	'dockerfordevs';	
$user	=	'root';	
$password	=	'docker';	
$dbh	=	new	PDO('mysql:host='	.	$hostname	.	';dbname='	.	$database	.	'',	$user,	$password);	
	
echo	'Hello	World';	
SunshinePHP	2016	 65
Testing it
SunshinePHP	2016	 66
Why didn’t it work?
•  Default	PHP	images	ship	with	barely	any	extensions	enabled	by	
default	
•  We	will	need	a	custom	PHP	Image	
SunshinePHP	2016	 67
Update our docker-compose.yml
phpserver:	
		build:	./docker/php	
		volumes:	
				-		./application:/var/www/	
		links:	
				-	mysqlserver	
SunshinePHP	2016	 68
Custom Docker File
FROM	php:7-fpm	
#	Install	modules	
RUN	apt-get	update	&&	apt-get	install	-y		
								libmcrypt-dev		
				&&	docker-php-ext-install	pdo		
				&&	docker-php-ext-install	pdo_mysql	
CMD	["php-fpm"]	
SunshinePHP	2016	 69
Let’s try that again
SunshinePHP	2016	 70
Deploying
SunshinePHP	2016	 71
I can’t answer this for you
SunshinePHP	2016	 72
Questions?
SunshinePHP	2016	 73
Each situation is different
•  You	will	probably	build	something	custom,	using	exisVng	tools	
•  Do	you	use	data	volumes?	
•  Do	you	just	package	the	enVre	compiled	app?	
•  Does	it	need	to	be	distributed?	
•  Is	it	going	on	Swarm,	or	Amazon	ECS?	
SunshinePHP	2016	 74
Things to consider
•  Docker	Compose	will	only	deploy	an	app	to	one	server	
•  Docker	Swarm	is	preGy	low-level	and	bare-bones	
•  Volumes	on	Swarm	cannot	be	shared	across	hosts	
•  Host	mounVng	is	99.99999%	of	the	Vme	not	what	you	want	to	do	
SunshinePHP	2016	 75
Rancher is a good start
•  Provides	a	nice	GUI	to	manage	everything	
•  Allows	volume	sharing	and	networking	across	hosts	
•  Works	with	docker-compose.yml	files	
•  These	files	can	be	supplemented	with	environment	variables	
SunshinePHP	2016	 76
Rancher in action
SunshinePHP	2016	 77
Questions?
SunshinePHP	2016	 78
http://ctankersley.com
chris@ctankersley.com
@dragonmantank
https://joind.in/talk/c1ecb
SunshinePHP	2016	 79

More Related Content

PDF
Docker for Developers
PDF
Docker for PHP Developers (NomadPHP)
PDF
Introduction to Containers and Docker for PHP developers
PDF
Docker Workshop for beginner
ODP
Why Docker? Dayton PHP, April 2017
PDF
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
ODP
Build a PaaS with OpenShift Origin
PDF
Docker in Production
Docker for Developers
Docker for PHP Developers (NomadPHP)
Introduction to Containers and Docker for PHP developers
Docker Workshop for beginner
Why Docker? Dayton PHP, April 2017
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Build a PaaS with OpenShift Origin
Docker in Production

What's hot (20)

PDF
Wordcamp Bratislava 2017 - Docker! Why?
PDF
Basic docker for developer
PDF
Docker HK Meetup - 201707
PDF
Docker and DevOps --- new IT culture
PDF
Docker at Spotify - Dockercon14
PPTX
Dockerize the World - presentation from Hradec Kralove
PDF
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
PDF
Docker Workshop Birthday #3
PDF
Containers in depth – Understanding how containers work to better work with c...
PDF
Docker workshop
PDF
PDF
How we dockerized a startup? #meetup #docker
PDF
Joomla Continuous Delivery with Docker
PDF
Introduction to Docker
PDF
Building a smarter application Stack by Tomas Doran from Yelp
PPTX
DockerCon Keynote Ben Golub
PPTX
Docker SF Meetup January 2016
PDF
Import golang; struct microservice - Codemotion Rome 2015
PPTX
Docker for PHP Developers - ZendCon 2016
ODP
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
Wordcamp Bratislava 2017 - Docker! Why?
Basic docker for developer
Docker HK Meetup - 201707
Docker and DevOps --- new IT culture
Docker at Spotify - Dockercon14
Dockerize the World - presentation from Hradec Kralove
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
Docker Workshop Birthday #3
Containers in depth – Understanding how containers work to better work with c...
Docker workshop
How we dockerized a startup? #meetup #docker
Joomla Continuous Delivery with Docker
Introduction to Docker
Building a smarter application Stack by Tomas Doran from Yelp
DockerCon Keynote Ben Golub
Docker SF Meetup January 2016
Import golang; struct microservice - Codemotion Rome 2015
Docker for PHP Developers - ZendCon 2016
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
Ad

Viewers also liked (20)

PDF
The Dynamics of Micro-Task Crowdsourcing
KEY
Ruleby
PDF
TechTalk: All You Want to Know About Docker and CA Testing Tools.
PDF
Introducing Docker
PDF
Rules Engine - java(Drools) & ruby(ruleby)
PDF
DockerCon 2016 Ecosystem - Everything You Need to Know About Docker and Stora...
PDF
WebLogic im Docker Container
PDF
A Hands-on Introduction to Docker
PPTX
Immutable infrastructure with Docker and EC2
PDF
Docker (Compose) 활용 - 개발 환경 구성하기
PPTX
Php development with Docker
PPTX
Engine lab software hybrid cloud specialists
PPTX
Information Design Web Planning Mockup
PDF
Microservices without Servers
PPTX
Docker for Developers - PNWPHP 2016 Workshop
PPT
NTR Lab - bespoke software development in Russia
DOCX
Spm file33
PDF
2013 Social Admissions Report
PDF
Especialidade de inclusão 5
PPT
component based softwrae engineering Cbse
The Dynamics of Micro-Task Crowdsourcing
Ruleby
TechTalk: All You Want to Know About Docker and CA Testing Tools.
Introducing Docker
Rules Engine - java(Drools) & ruby(ruleby)
DockerCon 2016 Ecosystem - Everything You Need to Know About Docker and Stora...
WebLogic im Docker Container
A Hands-on Introduction to Docker
Immutable infrastructure with Docker and EC2
Docker (Compose) 활용 - 개발 환경 구성하기
Php development with Docker
Engine lab software hybrid cloud specialists
Information Design Web Planning Mockup
Microservices without Servers
Docker for Developers - PNWPHP 2016 Workshop
NTR Lab - bespoke software development in Russia
Spm file33
2013 Social Admissions Report
Especialidade de inclusão 5
component based softwrae engineering Cbse
Ad

Similar to Docker for developers (20)

PDF
Dockerize All The Things
PPTX
Docker for Developers - Sunshine PHP
PPTX
From Docker to Production - SunshinePHP 2017
PDF
Docker for developers
PDF
Docker for developers
PPTX
Using Docker to boost your development experience with Drupal
ODP
Docker for Developers - php[tek] 2017
PPTX
Тарас Кирилюк — Docker basics. How-to for Drupal developers
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
PDF
Docker basic
PDF
codemotion-docker-2014
PPTX
Tribal Nova Docker feedback
PPTX
Getting Started with Docker
PPTX
Dockerizing a Symfony2 application
PDF
Introduction to Docker at the Azure Meet-up in New York
PDF
Preparing your dockerised application for production deployment
PDF
Dockerize your Symfony application - Symfony Live NYC 2014
PPTX
Java developer intro to environment management with vagrant puppet and docker
PPTX
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
PDF
Docker From Scratch
Dockerize All The Things
Docker for Developers - Sunshine PHP
From Docker to Production - SunshinePHP 2017
Docker for developers
Docker for developers
Using Docker to boost your development experience with Drupal
Docker for Developers - php[tek] 2017
Тарас Кирилюк — Docker basics. How-to for Drupal developers
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Docker basic
codemotion-docker-2014
Tribal Nova Docker feedback
Getting Started with Docker
Dockerizing a Symfony2 application
Introduction to Docker at the Azure Meet-up in New York
Preparing your dockerised application for production deployment
Dockerize your Symfony application - Symfony Live NYC 2014
Java developer intro to environment management with vagrant puppet and docker
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Docker From Scratch

More from Chris Tankersley (20)

PDF
8 Rules for Better Applications - PHP Tek 2025
PDF
The Art of API Design - PHP Tek 2025, Chris Tankersley
PDF
Docker is Dead: Long Live Containers
PDF
Bend time to your will with git
PDF
Using PHP Functions! (Not those functions, Google Cloud Functions)
PDF
Dead Simple APIs with OpenAPI
PDF
Killer Docker Workflows for Development
PDF
You Got Async in my PHP!
ODP
Docker for Developers - PHP Detroit 2018
ODP
Docker for Developers
ODP
They are Watching You
ODP
BASHing at the CLI - Midwest PHP 2018
PDF
You Were Lied To About Optimization
ODP
Docker for PHP Developers - php[world] 2017
ODP
Docker for PHP Developers - Madison PHP 2017
PPTX
OOP Is More Then Cars and Dogs - Midwest PHP 2017
PPTX
Coming to Terms with OOP In Drupal - php[world] 2016
PPTX
How We Got Here: A Brief History of Open Source
PPTX
From Docker to Production - ZendCon 2016
PPTX
Oh Crap, My Code is Slow - Madison PHP 2016
8 Rules for Better Applications - PHP Tek 2025
The Art of API Design - PHP Tek 2025, Chris Tankersley
Docker is Dead: Long Live Containers
Bend time to your will with git
Using PHP Functions! (Not those functions, Google Cloud Functions)
Dead Simple APIs with OpenAPI
Killer Docker Workflows for Development
You Got Async in my PHP!
Docker for Developers - PHP Detroit 2018
Docker for Developers
They are Watching You
BASHing at the CLI - Midwest PHP 2018
You Were Lied To About Optimization
Docker for PHP Developers - php[world] 2017
Docker for PHP Developers - Madison PHP 2017
OOP Is More Then Cars and Dogs - Midwest PHP 2017
Coming to Terms with OOP In Drupal - php[world] 2016
How We Got Here: A Brief History of Open Source
From Docker to Production - ZendCon 2016
Oh Crap, My Code is Slow - Madison PHP 2016

Recently uploaded (20)

PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Encapsulation theory and applications.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
KodekX | Application Modernization Development
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Digital-Transformation-Roadmap-for-Companies.pptx
MYSQL Presentation for SQL database connectivity
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Encapsulation theory and applications.pdf
MIND Revenue Release Quarter 2 2025 Press Release
NewMind AI Weekly Chronicles - August'25 Week I
Building Integrated photovoltaic BIPV_UPV.pdf
Spectral efficient network and resource selection model in 5G networks
sap open course for s4hana steps from ECC to s4
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
KodekX | Application Modernization Development
Unlocking AI with Model Context Protocol (MCP)
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Chapter 3 Spatial Domain Image Processing.pdf
Approach and Philosophy of On baking technology
Encapsulation_ Review paper, used for researhc scholars
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

Docker for developers