SlideShare a Scribd company logo
Gerald Z. Villorente, VielSoft Ltd Co.
Drupal | Linux | DevOps | FOSS Advocate | Father
Drupal Camp Vietnam 2016, Hanoi University of Science and Technology - Hanoi, Vietnam
Of Docker and
Drupal
customizable and reusable environment
About Me | V tôiề
●
Drupal developer
●
Linux enthusiast
●
Advocate of free education
●
Managing Director, VielSoft Ltd Co.
●
Docker and OpenStack enthusiast
●
DevOps
●
Beer
●
A father
Introducing Docker
Gi i thi u Dockerớ ệ
What is Docker?
Docker là gì?
So what Docker is?
Docker allows you to package an application with
all of its dependencies into a standardized unit for
software development.
Docker containers wrap up a piece of software in a
complete filesystem that contains everything it
needs to run: code, runtime, system tools, system
libraries – anything you can install on a server.
This guarantees that it will always run the same,
regardless of the environment it is running in.
What is a Container?
Container là gì??
is a set of processes which have been
isolated together by the Linux kernel
Why Docker?
T i sao Docker?ạ
Lightweight
Tr ng lư ng nhọ ợ ẹ
Portable
di đ ngộ
Isolation
Bi t l pệ ậ
Consistent Environments
môi trư ng phù h pờ ợ
Developer: Build Once, Run
Anywhere
●
A clean, safe, hygienic and portable runtime environment for your app.
●
No worries about missing dependencies, packages and other pain
points during subsequent deployments.
●
Run each app in its isolated container.
●
Automate testing, integration, packaging...anything you can script
●
Reduce/eliminate concerns about compatibility on different platforms,
either your own or your customers.
●
Install replay and reset of image snapshots.
●
Almost no overhead (think about VM).
DevOps: Configure Once, Run
Anything
●
Make the entire lifecycle more efficient, consistent, and repeatable.
●
Increase the quality of code produced by developers.
●
Eliminate inconsistencies between development, test, production,
and customer environments.
●
Support segregation of duties.
●
Significantly improves the speed and reliability of continuous
deployment and continuous integration systems.
●
Because the containers are so lightweight, address significant
performance, costs, deployment, and portability issues normally
associated with VMs.
Dockerfile
A Dockerfile is a text document that contains all the
commands a user could call on the command line to
assemble an image.
How to check the existence of
Docker Engine?
Làm th nào đ ki m tra s t nế ể ể ự ồ
t i c a Docker Engine?ạ ủ
How to check Docker version?
Làm th nào đ ki m tra phiênế ể ể
b n Docker?ả
Working with Docker Images
Làm vi c v i Dockerệ ớ
How to create an image?
Làm th nào đ t o ra m tế ể ạ ộ
image?
$ cd [DOCKERFILE-DIR]
$ docker build .
How to pull a pre-built image?
Làm th nào đ pull m t imageế ể ộ
đư c xây d ng trư c?ợ ự ớ
$ docker pull geraldvillorente/ubuntu-base
How to rebuild the image?
Làm th nào đ xây d ng l iế ể ự ạ
image?
$ docker build --no-cache .
Or
$ docker build -t geraldvillorente/drupal7:3.0 .
How to list Docker images?
Làm th nào đ li t kê các imageế ể ệ
Docker?
$ docker images
How to delete an image?
Làm th nào đ xóa image?ế ể
$ docker rmi [IMAGE_ID]
How to create a version?
Làm th nào đ t o ra m t phiênế ể ạ ộ
b n?ả
$ docker tag [IMAGE ID] geraldvillorente/drupal7:latest
$ docker tag [IMAGE ID] geraldvillorente/drupal7:2.0
How to push to a remote
repository?
Làm th nào đ push đ n m tế ể ế ộ
kho lưu tr t xa?ữ ừ
$ docker login
$ docker push geraldvillorente/drupal7:2.2
Working with Docker Containers
Làm vi c v i Docker Containersệ ớ
How to create Docker container?
Làm th nào đ t o ra Dockerế ể ạ
container?
$ docker run [IMAGE_ID]
$ docker run --name d7memcache -d [IMAGE_ID]
Where “d7memcache” is the name of the container and
“-d” is to tell Docker to run the “d7memcache” container in
background and “[IMAGE_ID]” is the Docker image that we
want to load in the container.
How to SSH in Docker container?
Làm th nào đ SSH vào Dockerế ể
container?
$ docker exec -it [CONTAINER_ID] bin/bash
Or
$ docker exec -it [CONTAINER_NAME] bin/bash
How to link Docker containers?
Làm th nào đ liên k t Dockerế ể ế
container?
$ docker run --name db_d7_vietnam -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
Where “db_d7_vietnam” is the name of the container and “123456” is root password and
“mysql:5.6” is the Docker image.
$ docker run --name web_apache2 --link db_d7_vietnam:db_d7_vietnam -d -p 49980:80 -v
/home/gerald/Web/drupal7/www:/var/www/html [WEB_IMAGE_ID]
Where “web_apache2” is the name of the web app and “49980” is the http port mapped to port 80
of the web container and “/home/gerald/Web/drupal7/www” is the location of Drupal project and
“/var/www/html” is the mount point inside Docker container and “[WEB_IMAGE_ID]” is the ID of
Docker image containing Apache and PHP stuff.
How to stop a container?
Làm th nào đ d ng m tế ể ừ ộ
container?
$ docker stop [CONTAINER_ID]
Or
$ docker stop [CONTAINER_NAME]
How to start a container?
Làm th nào đ b t đ u m tế ể ắ ầ ộ
container?
$ docker start [CONTAINER_ID]
Or
$ docker start [CONTAINER_NAME]
How to inspect a container?
Làm th nào đ ki m tra m tế ể ể ộ
container?
$ docker inspect [CONTAINER_ID]
Or
$ docker inspect [CONTAINER_NAME]
# Checking linked container/s
$ docker inspect -f "{{ .HostConfig.Links }}" [CONTAINER_ID]
# Checking environment variables
$ docker inspect -f "{{ .Config.Env }}" [CONTAINER_ID]
How to check container logs?
Làm th nào đ ki m tra cácế ể ể
container log?
$ docker logs [CONTAINER_ID]
How to check container
processes?
Làm th nào đ ki m tra quáế ể ể
trình container?
$ docker top [CONTAINER_ID]
How to delete a container?
Làm th nào đ xóa m tế ể ộ
container?
$ docker rm [CONTAINER_ID]
How to list Docker containers?
Làm th nào đ li t kê Dockerế ể ệ
containers?
# To list running containers
$ docker ps
# To list all containers
$ docker ps -a
Accessing the App?
Truy c p ng d ng?ậ ứ ụ
http://localhost:49980
Assigning VHOST to Docker
Ports?
Gán VHOST đ n c ng Docker ?ế ổ
http://jasonwilder.com/blog/2014/03/2
5/automated-nginx-reverse-proxy-for-
docker/
In case you need more help
Trong trư ng h p b n c n thêmờ ợ ạ ầ
tr giúpợ
●
https://training.docker.com/
●
http://learningdocker.com/
●
https://github.com/dwyl/learn-docker
●
https://www.youtube.com/watch?v=Q5POuMHxW-0
●
https://www.youtube.com/watch?v=VeiUjkiqo9E
●
http://build-podcast.com/docker/
Question?
Câu h i?ỏ
Contact | Liên Hệ
●
Skype : gerald.villorente
●
Website: https://vielsoft.com
●
Hangout : geraldvillorente@gmail.com
●
Email: gerald@vielsoft.com
●
Github: https://github.com/VielSoft
●
Facebook: https://fb.com/VielSoft
●
Mobile: +639167332641
Thank you | Salamat
C m ơn b nả ạ
Disclaimer
All images and other content used in this
presentation are borrowed from the internet.
Therefore, all rights reserved to the original
owner.

More Related Content

What's hot

Exploring composer in drupal 8 with drupal project - salva molina
Exploring composer in drupal 8 with drupal project - salva molinaExploring composer in drupal 8 with drupal project - salva molina
Exploring composer in drupal 8 with drupal project - salva molina
Salvador Molina (Slv_)
 
Docker, Ansible and Symfony micro-kernel
Docker, Ansible and Symfony micro-kernelDocker, Ansible and Symfony micro-kernel
Docker, Ansible and Symfony micro-kernel
DrupalCamp Kyiv
 
Using deploy in drupal 8
Using deploy in drupal 8Using deploy in drupal 8
Using deploy in drupal 8
timmillwood
 
Using Composer with Drupal and Drush
Using Composer with Drupal and DrushUsing Composer with Drupal and Drush
Using Composer with Drupal and Drush
Pantheon
 
Cloud expo-east-2015
Cloud expo-east-2015Cloud expo-east-2015
Cloud expo-east-2015
argvader
 
Migration from drupal 7 to drupal 8
Migration from drupal 7 to drupal 8Migration from drupal 7 to drupal 8
Migration from drupal 7 to drupal 8
Krzysztof (Chris) Ozog
 
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
DrupalCamp Kyiv
 
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
Usersnap
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and Drush
Pantheon
 
Desarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y AzureDesarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y Azure
Patxi Gortázar
 
Drupalhagen 2014 kiss omg ftw
Drupalhagen 2014   kiss omg ftwDrupalhagen 2014   kiss omg ftw
Drupalhagen 2014 kiss omg ftw
Arne Jørgensen
 
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Paul McKibben
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
MarcinStachniuk
 
DevTools Package Development
 DevTools Package Development DevTools Package Development
DevTools Package Development
Sagar Deogirkar
 
Terminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceTerminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interface
Jon Peck
 
Docker & PHP - Practical use case
Docker & PHP - Practical use caseDocker & PHP - Practical use case
Docker & PHP - Practical use case
rjsmelo
 
Drush in the Composer Era
Drush in the Composer EraDrush in the Composer Era
Drush in the Composer Era
Pantheon
 
Bower & Grunt - A practical workflow
Bower & Grunt - A practical workflowBower & Grunt - A practical workflow
Bower & Grunt - A practical workflow
Riccardo Coppola
 
Bower - A package manager for the web
Bower - A package manager for the webBower - A package manager for the web
Bower - A package manager for the web
Larry Nung
 
Git: be social
Git: be socialGit: be social
Git: be social
Geronimo Orozco
 

What's hot (20)

Exploring composer in drupal 8 with drupal project - salva molina
Exploring composer in drupal 8 with drupal project - salva molinaExploring composer in drupal 8 with drupal project - salva molina
Exploring composer in drupal 8 with drupal project - salva molina
 
Docker, Ansible and Symfony micro-kernel
Docker, Ansible and Symfony micro-kernelDocker, Ansible and Symfony micro-kernel
Docker, Ansible and Symfony micro-kernel
 
Using deploy in drupal 8
Using deploy in drupal 8Using deploy in drupal 8
Using deploy in drupal 8
 
Using Composer with Drupal and Drush
Using Composer with Drupal and DrushUsing Composer with Drupal and Drush
Using Composer with Drupal and Drush
 
Cloud expo-east-2015
Cloud expo-east-2015Cloud expo-east-2015
Cloud expo-east-2015
 
Migration from drupal 7 to drupal 8
Migration from drupal 7 to drupal 8Migration from drupal 7 to drupal 8
Migration from drupal 7 to drupal 8
 
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
 
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
Docker as a Multitool: DevOps with Docker at Azure Bootcamp Linz 2017
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and Drush
 
Desarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y AzureDesarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y Azure
 
Drupalhagen 2014 kiss omg ftw
Drupalhagen 2014   kiss omg ftwDrupalhagen 2014   kiss omg ftw
Drupalhagen 2014 kiss omg ftw
 
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
 
DevTools Package Development
 DevTools Package Development DevTools Package Development
DevTools Package Development
 
Terminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceTerminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interface
 
Docker & PHP - Practical use case
Docker & PHP - Practical use caseDocker & PHP - Practical use case
Docker & PHP - Practical use case
 
Drush in the Composer Era
Drush in the Composer EraDrush in the Composer Era
Drush in the Composer Era
 
Bower & Grunt - A practical workflow
Bower & Grunt - A practical workflowBower & Grunt - A practical workflow
Bower & Grunt - A practical workflow
 
Bower - A package manager for the web
Bower - A package manager for the webBower - A package manager for the web
Bower - A package manager for the web
 
Git: be social
Git: be socialGit: be social
Git: be social
 

Similar to Of Docker and Drupal

Docker-Presentation.pptx
Docker-Presentation.pptxDocker-Presentation.pptx
Docker-Presentation.pptx
Vipobav
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
Docker, Inc.
 
Introduction To Docker
Introduction To DockerIntroduction To Docker
Introduction To Docker
Hamilton Turner
 
Docker Starter Pack
Docker Starter PackDocker Starter Pack
Docker Starter Pack
Saeed Hajizade
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with docker
Michelle Liu
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
Naukri.com
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech Talk
Red Hat Developers
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
JasonStraughan1
 
Docker puebla bday #4 celebration
Docker puebla bday #4 celebrationDocker puebla bday #4 celebration
Docker puebla bday #4 celebration
Ramon Morales
 
Docker Command Line, Using and Choosing containers
Docker Command Line, Using and Choosing containers Docker Command Line, Using and Choosing containers
Docker Command Line, Using and Choosing containers
Will Hall
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
Runcy Oommen
 
Docker, what's next ?
Docker, what's next ?Docker, what's next ?
Docker, what's next ?
DevOps Indonesia
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
CodeOps Technologies LLP
 
Docker engine - Indroduc
Docker engine - IndroducDocker engine - Indroduc
Docker engine - Indroduc
Al Gifari
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
Araf Karsh Hamid
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
양재동 코드랩
 
Docker workshop GDSC_CSSC
Docker workshop GDSC_CSSCDocker workshop GDSC_CSSC
Docker workshop GDSC_CSSC
GDSC UofT Mississauga
 
Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021
Alessandro Mignogna
 
Docker Introduction.pdf
Docker Introduction.pdfDocker Introduction.pdf
Docker Introduction.pdf
OKLABS
 
FEI Bratislava 2017 - Docker
FEI Bratislava 2017 - DockerFEI Bratislava 2017 - Docker
FEI Bratislava 2017 - Docker
Adam Štipák
 

Similar to Of Docker and Drupal (20)

Docker-Presentation.pptx
Docker-Presentation.pptxDocker-Presentation.pptx
Docker-Presentation.pptx
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
Introduction To Docker
Introduction To DockerIntroduction To Docker
Introduction To Docker
 
Docker Starter Pack
Docker Starter PackDocker Starter Pack
Docker Starter Pack
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with docker
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech Talk
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
Docker puebla bday #4 celebration
Docker puebla bday #4 celebrationDocker puebla bday #4 celebration
Docker puebla bday #4 celebration
 
Docker Command Line, Using and Choosing containers
Docker Command Line, Using and Choosing containers Docker Command Line, Using and Choosing containers
Docker Command Line, Using and Choosing containers
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
 
Docker, what's next ?
Docker, what's next ?Docker, what's next ?
Docker, what's next ?
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
Docker engine - Indroduc
Docker engine - IndroducDocker engine - Indroduc
Docker engine - Indroduc
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
 
Docker workshop GDSC_CSSC
Docker workshop GDSC_CSSCDocker workshop GDSC_CSSC
Docker workshop GDSC_CSSC
 
Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021
 
Docker Introduction.pdf
Docker Introduction.pdfDocker Introduction.pdf
Docker Introduction.pdf
 
FEI Bratislava 2017 - Docker
FEI Bratislava 2017 - DockerFEI Bratislava 2017 - Docker
FEI Bratislava 2017 - Docker
 

More from Gerald Villorente

BITS 2015: The Beauty of Drupal
BITS 2015: The Beauty of DrupalBITS 2015: The Beauty of Drupal
BITS 2015: The Beauty of DrupalGerald Villorente
 
Introduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesIntroduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, Terminologies
Gerald Villorente
 
Consistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and ChefConsistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and ChefGerald Villorente
 
Drush Deployment Manager: Deployment Made Easy
Drush Deployment Manager: Deployment Made EasyDrush Deployment Manager: Deployment Made Easy
Drush Deployment Manager: Deployment Made EasyGerald Villorente
 
Consistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and ChefConsistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and Chef
Gerald Villorente
 
Why Drupal is Rockstar?
Why Drupal is Rockstar?Why Drupal is Rockstar?
Why Drupal is Rockstar?
Gerald Villorente
 
DevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal DeploymentDevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal Deployment
Gerald Villorente
 
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and Vagrant
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and VagrantDrupal Pilipinas Apprentice: LAMP Administration, CSS, and Vagrant
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and Vagrant
Gerald Villorente
 
Best Practices: Drupal Development
Best Practices: Drupal DevelopmentBest Practices: Drupal Development
Best Practices: Drupal Development
Gerald Villorente
 
Drupal Deployment and Essential Development Tools - 2nd Edition
Drupal Deployment and Essential Development Tools - 2nd EditionDrupal Deployment and Essential Development Tools - 2nd Edition
Drupal Deployment and Essential Development Tools - 2nd Edition
Gerald Villorente
 
Drupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development ToolsDrupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development Tools
Gerald Villorente
 
Setting Up Cross-Browser Testing Environment (Debian-based System)
Setting Up Cross-Browser Testing Environment  (Debian-based System)Setting Up Cross-Browser Testing Environment  (Debian-based System)
Setting Up Cross-Browser Testing Environment (Debian-based System)
Gerald Villorente
 
Drupal Security Hardening
Drupal Security HardeningDrupal Security Hardening
Drupal Security Hardening
Gerald Villorente
 
Drupal Security Hardening
Drupal Security HardeningDrupal Security Hardening
Drupal Security Hardening
Gerald Villorente
 
Drupal Performance and Scaling
Drupal Performance and ScalingDrupal Performance and Scaling
Drupal Performance and ScalingGerald Villorente
 
Automating Drupal Deployment
Automating Drupal DeploymentAutomating Drupal Deployment
Automating Drupal Deployment
Gerald Villorente
 

More from Gerald Villorente (20)

BITS 2015: The Beauty of Drupal
BITS 2015: The Beauty of DrupalBITS 2015: The Beauty of Drupal
BITS 2015: The Beauty of Drupal
 
Introduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesIntroduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, Terminologies
 
Consistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and ChefConsistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and Chef
 
Drush Deployment Manager: Deployment Made Easy
Drush Deployment Manager: Deployment Made EasyDrush Deployment Manager: Deployment Made Easy
Drush Deployment Manager: Deployment Made Easy
 
Consistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and ChefConsistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and Chef
 
Why Drupal is Rockstar?
Why Drupal is Rockstar?Why Drupal is Rockstar?
Why Drupal is Rockstar?
 
DevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal DeploymentDevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal Deployment
 
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and Vagrant
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and VagrantDrupal Pilipinas Apprentice: LAMP Administration, CSS, and Vagrant
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and Vagrant
 
Best Practices: Drupal Development
Best Practices: Drupal DevelopmentBest Practices: Drupal Development
Best Practices: Drupal Development
 
Drupal Deployment and Essential Development Tools - 2nd Edition
Drupal Deployment and Essential Development Tools - 2nd EditionDrupal Deployment and Essential Development Tools - 2nd Edition
Drupal Deployment and Essential Development Tools - 2nd Edition
 
Drupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development ToolsDrupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development Tools
 
Setting Up Cross-Browser Testing Environment (Debian-based System)
Setting Up Cross-Browser Testing Environment  (Debian-based System)Setting Up Cross-Browser Testing Environment  (Debian-based System)
Setting Up Cross-Browser Testing Environment (Debian-based System)
 
Git: Git'ing the Basic
Git: Git'ing the BasicGit: Git'ing the Basic
Git: Git'ing the Basic
 
Anatomy of Drupal
Anatomy of DrupalAnatomy of Drupal
Anatomy of Drupal
 
Drupal Security Hardening
Drupal Security HardeningDrupal Security Hardening
Drupal Security Hardening
 
Drupal Security Hardening
Drupal Security HardeningDrupal Security Hardening
Drupal Security Hardening
 
Drupal Performance and Scaling
Drupal Performance and ScalingDrupal Performance and Scaling
Drupal Performance and Scaling
 
Web Security
Web SecurityWeb Security
Web Security
 
Automating Drupal Deployment
Automating Drupal DeploymentAutomating Drupal Deployment
Automating Drupal Deployment
 
Beginners Guide to Drupal
Beginners Guide to DrupalBeginners Guide to Drupal
Beginners Guide to Drupal
 

Recently uploaded

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 

Recently uploaded (20)

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 

Of Docker and Drupal

  • 1. Gerald Z. Villorente, VielSoft Ltd Co. Drupal | Linux | DevOps | FOSS Advocate | Father Drupal Camp Vietnam 2016, Hanoi University of Science and Technology - Hanoi, Vietnam Of Docker and Drupal customizable and reusable environment
  • 2. About Me | V tôiề ● Drupal developer ● Linux enthusiast ● Advocate of free education ● Managing Director, VielSoft Ltd Co. ● Docker and OpenStack enthusiast ● DevOps ● Beer ● A father
  • 3.
  • 4.
  • 5. Introducing Docker Gi i thi u Dockerớ ệ
  • 7. So what Docker is? Docker allows you to package an application with all of its dependencies into a standardized unit for software development. Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.
  • 8.
  • 9. What is a Container? Container là gì?? is a set of processes which have been isolated together by the Linux kernel
  • 10. Why Docker? T i sao Docker?ạ
  • 11. Lightweight Tr ng lư ng nhọ ợ ẹ
  • 13. Isolation Bi t l pệ ậ
  • 14. Consistent Environments môi trư ng phù h pờ ợ
  • 15. Developer: Build Once, Run Anywhere ● A clean, safe, hygienic and portable runtime environment for your app. ● No worries about missing dependencies, packages and other pain points during subsequent deployments. ● Run each app in its isolated container. ● Automate testing, integration, packaging...anything you can script ● Reduce/eliminate concerns about compatibility on different platforms, either your own or your customers. ● Install replay and reset of image snapshots. ● Almost no overhead (think about VM).
  • 16. DevOps: Configure Once, Run Anything ● Make the entire lifecycle more efficient, consistent, and repeatable. ● Increase the quality of code produced by developers. ● Eliminate inconsistencies between development, test, production, and customer environments. ● Support segregation of duties. ● Significantly improves the speed and reliability of continuous deployment and continuous integration systems. ● Because the containers are so lightweight, address significant performance, costs, deployment, and portability issues normally associated with VMs.
  • 17.
  • 18. Dockerfile A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image.
  • 19. How to check the existence of Docker Engine? Làm th nào đ ki m tra s t nế ể ể ự ồ t i c a Docker Engine?ạ ủ
  • 20. How to check Docker version? Làm th nào đ ki m tra phiênế ể ể b n Docker?ả
  • 21. Working with Docker Images Làm vi c v i Dockerệ ớ
  • 22. How to create an image? Làm th nào đ t o ra m tế ể ạ ộ image? $ cd [DOCKERFILE-DIR] $ docker build .
  • 23. How to pull a pre-built image? Làm th nào đ pull m t imageế ể ộ đư c xây d ng trư c?ợ ự ớ $ docker pull geraldvillorente/ubuntu-base
  • 24. How to rebuild the image? Làm th nào đ xây d ng l iế ể ự ạ image? $ docker build --no-cache . Or $ docker build -t geraldvillorente/drupal7:3.0 .
  • 25. How to list Docker images? Làm th nào đ li t kê các imageế ể ệ Docker? $ docker images
  • 26. How to delete an image? Làm th nào đ xóa image?ế ể $ docker rmi [IMAGE_ID]
  • 27. How to create a version? Làm th nào đ t o ra m t phiênế ể ạ ộ b n?ả $ docker tag [IMAGE ID] geraldvillorente/drupal7:latest $ docker tag [IMAGE ID] geraldvillorente/drupal7:2.0
  • 28. How to push to a remote repository? Làm th nào đ push đ n m tế ể ế ộ kho lưu tr t xa?ữ ừ $ docker login $ docker push geraldvillorente/drupal7:2.2
  • 29. Working with Docker Containers Làm vi c v i Docker Containersệ ớ
  • 30. How to create Docker container? Làm th nào đ t o ra Dockerế ể ạ container? $ docker run [IMAGE_ID] $ docker run --name d7memcache -d [IMAGE_ID] Where “d7memcache” is the name of the container and “-d” is to tell Docker to run the “d7memcache” container in background and “[IMAGE_ID]” is the Docker image that we want to load in the container.
  • 31. How to SSH in Docker container? Làm th nào đ SSH vào Dockerế ể container? $ docker exec -it [CONTAINER_ID] bin/bash Or $ docker exec -it [CONTAINER_NAME] bin/bash
  • 32. How to link Docker containers? Làm th nào đ liên k t Dockerế ể ế container? $ docker run --name db_d7_vietnam -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6 Where “db_d7_vietnam” is the name of the container and “123456” is root password and “mysql:5.6” is the Docker image. $ docker run --name web_apache2 --link db_d7_vietnam:db_d7_vietnam -d -p 49980:80 -v /home/gerald/Web/drupal7/www:/var/www/html [WEB_IMAGE_ID] Where “web_apache2” is the name of the web app and “49980” is the http port mapped to port 80 of the web container and “/home/gerald/Web/drupal7/www” is the location of Drupal project and “/var/www/html” is the mount point inside Docker container and “[WEB_IMAGE_ID]” is the ID of Docker image containing Apache and PHP stuff.
  • 33. How to stop a container? Làm th nào đ d ng m tế ể ừ ộ container? $ docker stop [CONTAINER_ID] Or $ docker stop [CONTAINER_NAME]
  • 34. How to start a container? Làm th nào đ b t đ u m tế ể ắ ầ ộ container? $ docker start [CONTAINER_ID] Or $ docker start [CONTAINER_NAME]
  • 35. How to inspect a container? Làm th nào đ ki m tra m tế ể ể ộ container? $ docker inspect [CONTAINER_ID] Or $ docker inspect [CONTAINER_NAME] # Checking linked container/s $ docker inspect -f "{{ .HostConfig.Links }}" [CONTAINER_ID] # Checking environment variables $ docker inspect -f "{{ .Config.Env }}" [CONTAINER_ID]
  • 36. How to check container logs? Làm th nào đ ki m tra cácế ể ể container log? $ docker logs [CONTAINER_ID]
  • 37. How to check container processes? Làm th nào đ ki m tra quáế ể ể trình container? $ docker top [CONTAINER_ID]
  • 38. How to delete a container? Làm th nào đ xóa m tế ể ộ container? $ docker rm [CONTAINER_ID]
  • 39. How to list Docker containers? Làm th nào đ li t kê Dockerế ể ệ containers? # To list running containers $ docker ps # To list all containers $ docker ps -a
  • 40. Accessing the App? Truy c p ng d ng?ậ ứ ụ
  • 42. Assigning VHOST to Docker Ports? Gán VHOST đ n c ng Docker ?ế ổ
  • 44. In case you need more help Trong trư ng h p b n c n thêmờ ợ ạ ầ tr giúpợ ● https://training.docker.com/ ● http://learningdocker.com/ ● https://github.com/dwyl/learn-docker ● https://www.youtube.com/watch?v=Q5POuMHxW-0 ● https://www.youtube.com/watch?v=VeiUjkiqo9E ● http://build-podcast.com/docker/
  • 46. Contact | Liên Hệ ● Skype : gerald.villorente ● Website: https://vielsoft.com ● Hangout : geraldvillorente@gmail.com ● Email: gerald@vielsoft.com ● Github: https://github.com/VielSoft ● Facebook: https://fb.com/VielSoft ● Mobile: +639167332641
  • 47. Thank you | Salamat C m ơn b nả ạ
  • 48. Disclaimer All images and other content used in this presentation are borrowed from the internet. Therefore, all rights reserved to the original owner.