SlideShare a Scribd company logo
1 of 26
Download to read offline
Continuous Delivery 
Workshop 
Jirayut Nimsaeng (Dear) 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014
Docker installation 
● Boot2docker for Windows & Mac OS X 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
– http://boot2docker.io 
– Ready to run Docker with 
● VirtualBox 4.3.14 (latest version is 4.3.16) 
● Docker latest version (1.2.0) 
● Lightweight Linux distribution 
● Boot in 5-10s
Docker installation 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
● Ubuntu based 
– https://docs.docker.com/installation/ubuntulinux/ 
– Recommend Ubuntu 14.04 64-bit LTS 
– curl -sSL https://get.docker.io/ubuntu/ | sudo sh 
● Redhat based 
– https://docs.docker.com/installation/centos/ 
– Recommend CentOS 7 
– EPEL repository enabled first 
– sudo yum install docker-io
Docker architecture 
Docker Client 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
Host 
socket 
Docker Daemon 
Web Server 80 xxxx 
Docker Containers 
Database 
3306
Boot2docker architecture 
2022 2035 
2035 
Jirayut Nimsaeng 
80 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
Host 
Virtualbox VM 
22 
SSH Docker Daemon 
Web Server 
boot2docker-vm 
80 1024+ 
Docker Containers 
Database 
Host-only 
80 
3306
VirtualBox port forward 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014
Run first Docker container 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
● docker images 
● docker pull 10.1.3.227:5000/ubuntu:latest 
● docker images 
● docker run 10.1.3.227:5000/ubuntu echo “Hello 
World” 
● docker run -i -t 10.1.3.227:5000/ubuntu /bin/bash 
– whoami 
– hostname 
– cat /etc/*release* 
– exit
Docker basic operations 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
● docker search [name] 
● docker pull [name[:tag]] 
– docker pull centos 
– docker pull ubuntu:latest 
● docker run [-itd] [name[:tag]] [command] 
● docker ps 
● docker ps -a 
● docker rm [name or cid] 
● docker rm [part of cid] 
● docker images 
● docker rmi [name:tag or iid]
Image name and tag 
● If you do docker command without tag, it will 
pull Docker image with every tags 
● docker pull 10.1.3.227:5000/ubuntu:12.04 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
● docker images 
● docker pull 10.1.3.227:5000/ubuntu 
● docker images
Create your first image 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
● docker run -i -t 10.1.3.227:5000/ubuntu /bin/bash 
– vim 
– echo 'Acquire::http::Proxy "http://10.1.3.227:3142";' > /etc/apt/apt.conf.d/11proxy 
– apt-get update 
– apt-get install vim 
– touch vim-installed 
– ls 
– exit 
● docker ps -a 
● docker commit [cid] ubuntu-vim 
● docker images 
● docker run -i -t ubuntu-vim /bin/bash 
– ls
Docker registry operation 
● Register your account at https://hub.docker.com 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
● You can pull without logging-in 
● docker login 
● docker push ubuntu-vim 
● docker tag ubuntu-vim winggundamth/ubuntu-vim 
● docker images 
● docker push winggundamth/ubuntu-vim 
● docker pull xxx/ubuntu-vim
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
Expose ports 
● ifconfig eth1 
● docker run -i -t -p 80:80 ubuntu-vim /bin/bash 
– apt-get install apache2 
– service apache2 start 
– Go to browser: http://ipaddress 
– exit 
● Commit your apache2 container as ubuntu-apache2 
with tag 14.04 and latest 
● Clear your stopped containers
Run as daemon & expose port option 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
● docker run ubuntu-apache2 
● docker run -d ubuntu-apache2 service apache2 start 
● docker run -d ubuntu-apache2 apachectl 
-DFOREGROUND 
● docker run -d -p 80:80 ubuntu-apache2 apachectl 
-DFOREGROUND 
● docker run -d -p 8880:80 ubuntu-apache2 apachectl 
-DFOREGROUND 
● docker run -d -p 80 ubuntu-apache2 apachectl 
-DFOREGROUND 
● docker ps
Docker container operation 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
● docker ps 
● docker stop [container id or name] 
● docker start [container id or name] 
● docker kill [container id or name] 
● docker logs [container id or name] 
● docker diff [container id or name] 
● docker top [container id or name] 
● docker inspect [container id or name]
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
Dockerfile 
● Create filename Dockerfile 
● Dockerfile Syntax 
– FROM - defines base image 
– MAINTAIN – author information 
– RUN – executes command 
– ENV – sets environment 
– EXPOSE – expose a port 
– ADD – add local file 
– CMD – default command to execute 
● Execute Dockerfile with command docker build 
● Docker will keep cache when execute each command above 
– Use docker build -–no-cache if you want to build without cache
SSH Image to Dockerfile 
FROM ubuntu-vim 
RUN apt-get install -y openssh-server 
RUN sed -i 's/required pam_loginuid.so/optional 
pam_loginuid.so/g' /etc/pam.d/sshd 
RUN sed -i 's/PermitRootLogin without-password/ 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
PermitRootLogin yes/g' 
/etc/ssh/sshd_config 
RUN mkdir /var/run/sshd 
RUN echo "root:test1234" | chpasswd 
CMD /usr/sbin/sshd -D 
EXPOSE 22
Build & run image from Dockerfile 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
● vi Dockerfile 
● docker build -t ubuntu-ssh . 
● docker images 
● docker run -d -p 2230:22 ubuntu-ssh 
● docker ps 
● ssh -p 2230 root@localhost
Let's deploy WordPress 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
Host 
Docker Daemon 
Apache 
Wordpress 
80 80 
Docker Containers 
MySQL 
3306
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
Build MySQL 
FROM ubuntu-vim 
ENV DEBIAN_FRONTEND noninteractive 
RUN echo 'mysql-server mysql-server/root_password password 
test1234' | debconf-set-selections 
RUN echo 'mysql-server mysql-server/root_password_again 
password test1234' | debconf-set-selections 
RUN apt-get install -y mysql-server 
RUN sed -i 's/bind-address/#bind-address/g' /etc/mysql/my.cnf 
RUN service mysql start &&  
mysql -u root -ptest1234 -e "CREATE DATABASE wordpress 
CHARACTER SET utf8 COLLATE utf8_general_ci;" &&  
mysql -u root -ptest1234 -e "GRANT ALL PRIVILEGES ON wptest.* 
TO wptest@'%' IDENTIFIED BY 'wptest' WITH GRANT OPTION;" 
CMD /usr/bin/mysqld_safe 
EXPOSE 3306
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
Build Apache 
FROM ubuntu-vim 
ENV DEBIAN_FRONTEND noninteractive 
RUN apt-get install -y libapache2-mod-php5 php5 
php5-mysql php5-curl 
ADD wordpress /var/www/wordpress 
ADD default /etc/apache2/sites-available/000- 
default.conf 
RUN a2enmod rewrite 
RUN chown -R www-data:www-data /var/www 
CMD apachectl -DFOREGROUND 
EXPOSE 80
Apache Configuration 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
<VirtualHost *:80> 
DocumentRoot /var/www/wordpress 
<Directory /var/www/wordpress> 
AllowOverride All 
</Directory> 
ErrorLog ${APACHE_LOG_DIR}/error.log 
CustomLog ${APACHE_LOG_DIR}/access.log 
combined 
</VirtualHost>
Wordpress Configuration 
● wget http://10.1.3.227:8000/wordpress- 
4.0.tar.gz 
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
● tar xvfz wordpress-4.0.tar.gz
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
Run it 
● docker run -d -p 3306:3306 --name mysql 
ubuntu-mysql 
● docker run -d -p 80:80 ubuntu-wp 
● Go to http://192.168.59.103 
– Use 172.17.42.1 as database host ip
Continuous Delivery with Docker 
5.Get Wordpress Code 
Jirayut Nimsaeng 
MySQL Data Image 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
MySQL 
Dockerfile 
Data MySQL Data Image 
Docker Engine 
Host 1 (Dev/Build Server) 
Docker 
Registry 
Host 2 (Container Server) 
1.Build 
3.Push 
7.Pull 
8.Run 
Docker Engine 
Container MySQL Data 
Backup 
Server 
2.Get DB Backup 
Repository 
Server 
Wordpress 
4.Build Dockerfile 
Wordpress Image 
6.Push 
Wordpress Image 
Container Wordpress
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
Build MySQL 
FROM ubuntu-vim 
ENV DEBIAN_FRONTEND noninteractive 
RUN echo 'mysql-server mysql-server/root_password password test1234' | debconf-set- 
selections 
RUN echo 'mysql-server mysql-server/root_password_again password test1234' | 
debconf-set-selections 
RUN apt-get install -y mysql-server wget 
RUN wget http://10.1.3.227:8000/wptest.sql 
RUN sed -i 's/bind-address/#bind-address/g' /etc/mysql/my.cnf 
RUN service mysql start &&  
mysql -u root -ptest1234 -e "CREATE DATABASE wptest CHARACTER SET utf8 
COLLATE utf8_general_ci;" &&  
mysql -u root -ptest1234 -e "GRANT ALL PRIVILEGES ON wptest.* TO wptest@'%' 
IDENTIFIED BY 'wptest' WITH GRANT OPTION;" 
mysql -u root -ptest1234 wptest < wptest.sql &&  
service mysql stop 
CMD /usr/bin/mysqld_safe 
EXPOSE 3306
Jirayut Nimsaeng 
Docker for DevOps and Continuous Delivery Workshop 
October 11, 2014 @ OSS Festival 2014 
Build Apache 
FROM ubuntu-vim 
ENV DEBIAN_FRONTEND noninteractive 
RUN apt-get install -y libapache2-mod-php5 php5 
php5-mysql php5-curl 
ADD wordpress /var/www/wordpress 
ADD default /etc/apache2/sites-available/000- 
default.conf 
RUN a2enmod rewrite 
RUN chown -R www-data:www-data /var/www 
CMD apachectl -DFOREGROUND 
EXPOSE 80

More Related Content

What's hot

Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire dotCloud
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralovedamovsky
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochranedotCloud
 
Docker - 15 great Tutorials
Docker - 15 great TutorialsDocker - 15 great Tutorials
Docker - 15 great TutorialsJulien Barbier
 
docker installation and basics
docker installation and basicsdocker installation and basics
docker installation and basicsWalid Ashraf
 
Amazon Web Services and Docker
Amazon Web Services and DockerAmazon Web Services and Docker
Amazon Web Services and DockerPaolo latella
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...Jérôme Petazzoni
 
Containers #101 : Docker ONBUILD triggers and Introduction to Docker Compose
Containers #101 : Docker ONBUILD triggers and Introduction to Docker ComposeContainers #101 : Docker ONBUILD triggers and Introduction to Docker Compose
Containers #101 : Docker ONBUILD triggers and Introduction to Docker ComposeRaziel Tabib (Join our team)
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshopRuncy Oommen
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux ContainerBalaji Rajan
 
OpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQOpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQdotCloud
 
Docker 101 - Intro to Docker
Docker 101 - Intro to DockerDocker 101 - Intro to Docker
Docker 101 - Intro to DockerAdrian Otto
 
Intro to Docker and clustering with Rancher from scratch
Intro to Docker and clustering with Rancher from scratchIntro to Docker and clustering with Rancher from scratch
Intro to Docker and clustering with Rancher from scratchJohn Culviner
 
Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016Walid Shaari
 

What's hot (20)

Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralove
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
 
Introduction To Docker
Introduction To DockerIntroduction To Docker
Introduction To Docker
 
Docker - 15 great Tutorials
Docker - 15 great TutorialsDocker - 15 great Tutorials
Docker - 15 great Tutorials
 
Docker From Scratch
Docker From ScratchDocker From Scratch
Docker From Scratch
 
docker installation and basics
docker installation and basicsdocker installation and basics
docker installation and basics
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Amazon Web Services and Docker
Amazon Web Services and DockerAmazon Web Services and Docker
Amazon Web Services and Docker
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Containers #101 : Docker ONBUILD triggers and Introduction to Docker Compose
Containers #101 : Docker ONBUILD triggers and Introduction to Docker ComposeContainers #101 : Docker ONBUILD triggers and Introduction to Docker Compose
Containers #101 : Docker ONBUILD triggers and Introduction to Docker Compose
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
 
OpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQOpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQ
 
Docker 101 - Intro to Docker
Docker 101 - Intro to DockerDocker 101 - Intro to Docker
Docker 101 - Intro to Docker
 
Intro to Docker and clustering with Rancher from scratch
Intro to Docker and clustering with Rancher from scratchIntro to Docker and clustering with Rancher from scratch
Intro to Docker and clustering with Rancher from scratch
 
Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016
 

Viewers also liked

Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
 
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...Docker, Inc.
 
Build cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack AnsibleBuild cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack AnsibleJirayut Nimsaeng
 
DevOps and Continuous Delivery reference architectures for Docker
DevOps and Continuous Delivery reference architectures for DockerDevOps and Continuous Delivery reference architectures for Docker
DevOps and Continuous Delivery reference architectures for DockerSonatype
 
Restcomm in an oauth environment
Restcomm in an oauth environmentRestcomm in an oauth environment
Restcomm in an oauth environmenttelestax
 
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Boyd Hemphill
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devopsEvans Ye
 
Modern devOps with Docker
Modern devOps with DockerModern devOps with Docker
Modern devOps with DockerAvi Cavale
 
Enterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private RegistryEnterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private RegistryChris Riley ☁
 
Red Hat Summit 2015 - Build an Enterprise Application in 60 Minutes with JBos...
Red Hat Summit 2015 - Build an Enterprise Application in 60 Minutes with JBos...Red Hat Summit 2015 - Build an Enterprise Application in 60 Minutes with JBos...
Red Hat Summit 2015 - Build an Enterprise Application in 60 Minutes with JBos...Maggie Hu
 
Docker and DevOps Trends in Hosting Industry
Docker and DevOps Trends in Hosting IndustryDocker and DevOps Trends in Hosting Industry
Docker and DevOps Trends in Hosting IndustryJelastic Multi-Cloud PaaS
 
Microservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyondMicroservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyondDonnie Berkholz
 
Hero's Tookit: Start Your Rugged DevOps Journey with Nexus, Jenkins and Docker
Hero's Tookit: Start Your Rugged DevOps Journey with Nexus, Jenkins and DockerHero's Tookit: Start Your Rugged DevOps Journey with Nexus, Jenkins and Docker
Hero's Tookit: Start Your Rugged DevOps Journey with Nexus, Jenkins and DockerSeniorStoryteller
 
A Primer on Kubernetes and Google Container Engine
A Primer on Kubernetes and Google Container EngineA Primer on Kubernetes and Google Container Engine
A Primer on Kubernetes and Google Container EngineRightScale
 
Culture Hacker: How to Herd CATTs and Inspire Rebels to Change the World! - S...
Culture Hacker: How to Herd CATTs and Inspire Rebels to Change the World! - S...Culture Hacker: How to Herd CATTs and Inspire Rebels to Change the World! - S...
Culture Hacker: How to Herd CATTs and Inspire Rebels to Change the World! - S...SeniorStoryteller
 
Continuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscaleContinuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscaleJulia Mateo
 
How Docker Fits into DevOps Ecosystem
How Docker Fits into DevOps EcosystemHow Docker Fits into DevOps Ecosystem
How Docker Fits into DevOps EcosystemEdureka!
 
Docker Enables DevOps
Docker Enables DevOpsDocker Enables DevOps
Docker Enables DevOpsBoyd Hemphill
 
Building and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and MarathonBuilding and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and MarathonJulia Mateo
 

Viewers also liked (20)

Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
 
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Build cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack AnsibleBuild cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack Ansible
 
DevOps and Continuous Delivery reference architectures for Docker
DevOps and Continuous Delivery reference architectures for DockerDevOps and Continuous Delivery reference architectures for Docker
DevOps and Continuous Delivery reference architectures for Docker
 
Restcomm in an oauth environment
Restcomm in an oauth environmentRestcomm in an oauth environment
Restcomm in an oauth environment
 
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devops
 
Modern devOps with Docker
Modern devOps with DockerModern devOps with Docker
Modern devOps with Docker
 
Enterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private RegistryEnterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private Registry
 
Red Hat Summit 2015 - Build an Enterprise Application in 60 Minutes with JBos...
Red Hat Summit 2015 - Build an Enterprise Application in 60 Minutes with JBos...Red Hat Summit 2015 - Build an Enterprise Application in 60 Minutes with JBos...
Red Hat Summit 2015 - Build an Enterprise Application in 60 Minutes with JBos...
 
Docker and DevOps Trends in Hosting Industry
Docker and DevOps Trends in Hosting IndustryDocker and DevOps Trends in Hosting Industry
Docker and DevOps Trends in Hosting Industry
 
Microservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyondMicroservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyond
 
Hero's Tookit: Start Your Rugged DevOps Journey with Nexus, Jenkins and Docker
Hero's Tookit: Start Your Rugged DevOps Journey with Nexus, Jenkins and DockerHero's Tookit: Start Your Rugged DevOps Journey with Nexus, Jenkins and Docker
Hero's Tookit: Start Your Rugged DevOps Journey with Nexus, Jenkins and Docker
 
A Primer on Kubernetes and Google Container Engine
A Primer on Kubernetes and Google Container EngineA Primer on Kubernetes and Google Container Engine
A Primer on Kubernetes and Google Container Engine
 
Culture Hacker: How to Herd CATTs and Inspire Rebels to Change the World! - S...
Culture Hacker: How to Herd CATTs and Inspire Rebels to Change the World! - S...Culture Hacker: How to Herd CATTs and Inspire Rebels to Change the World! - S...
Culture Hacker: How to Herd CATTs and Inspire Rebels to Change the World! - S...
 
Continuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscaleContinuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscale
 
How Docker Fits into DevOps Ecosystem
How Docker Fits into DevOps EcosystemHow Docker Fits into DevOps Ecosystem
How Docker Fits into DevOps Ecosystem
 
Docker Enables DevOps
Docker Enables DevOpsDocker Enables DevOps
Docker Enables DevOps
 
Building and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and MarathonBuilding and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and Marathon
 

Similar to Docker Continuous Delivery Workshop

Docker Workshop for beginner
Docker Workshop for beginnerDocker Workshop for beginner
Docker Workshop for beginnerJirayut Nimsaeng
 
手把手帶你學Docker 03042017
手把手帶你學Docker 03042017手把手帶你學Docker 03042017
手把手帶你學Docker 03042017Paul Chao
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationErica Windisch
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Paul Chao
 
手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇Philip Zheng
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇Philip Zheng
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to DockerJian Wu
 
Docker workshop DevOpsDays Amsterdam 2014
Docker workshop DevOpsDays Amsterdam 2014Docker workshop DevOpsDays Amsterdam 2014
Docker workshop DevOpsDays Amsterdam 2014Pini Reznik
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesJérôme Petazzoni
 
Hands-On Session Docker
Hands-On Session DockerHands-On Session Docker
Hands-On Session DockerLinetsChile
 
Running the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerRunning the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerGuido Schmutz
 
Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxIgnacioTamayo2
 
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)Puppet
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Ben Hall
 
Tribal Nova Docker workshop
Tribal Nova Docker workshopTribal Nova Docker workshop
Tribal Nova Docker workshopNicolas Degardin
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornPROIDEA
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 applicationRoman Rodomansky
 

Similar to Docker Continuous Delivery Workshop (20)

Docker Workshop for beginner
Docker Workshop for beginnerDocker Workshop for beginner
Docker Workshop for beginner
 
手把手帶你學Docker 03042017
手把手帶你學Docker 03042017手把手帶你學Docker 03042017
手把手帶你學Docker 03042017
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung
 
手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to Docker
 
Docker workshop DevOpsDays Amsterdam 2014
Docker workshop DevOpsDays Amsterdam 2014Docker workshop DevOpsDays Amsterdam 2014
Docker workshop DevOpsDays Amsterdam 2014
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
 
Docker, c'est bonheur !
Docker, c'est bonheur !Docker, c'est bonheur !
Docker, c'est bonheur !
 
Hands-On Session Docker
Hands-On Session DockerHands-On Session Docker
Hands-On Session Docker
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Docker研習營
Docker研習營Docker研習營
Docker研習營
 
Running the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerRunning the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker Container
 
Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptx
 
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
 
Tribal Nova Docker workshop
Tribal Nova Docker workshopTribal Nova Docker workshop
Tribal Nova Docker workshop
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 

More from Jirayut Nimsaeng

OpenStack Ansible for private cloud at Kaidee
OpenStack Ansible for private cloud at KaideeOpenStack Ansible for private cloud at Kaidee
OpenStack Ansible for private cloud at KaideeJirayut Nimsaeng
 
How to contribute to OpenStack
How to contribute to OpenStackHow to contribute to OpenStack
How to contribute to OpenStackJirayut Nimsaeng
 
Docker Workshop Birthday #3
Docker Workshop Birthday #3Docker Workshop Birthday #3
Docker Workshop Birthday #3Jirayut Nimsaeng
 
Better delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentBetter delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentJirayut Nimsaeng
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)Jirayut Nimsaeng
 
A Study Of Cloud Computing
A Study Of Cloud ComputingA Study Of Cloud Computing
A Study Of Cloud ComputingJirayut Nimsaeng
 

More from Jirayut Nimsaeng (10)

Beyond OpenStack
Beyond OpenStackBeyond OpenStack
Beyond OpenStack
 
OpenStack Ansible for private cloud at Kaidee
OpenStack Ansible for private cloud at KaideeOpenStack Ansible for private cloud at Kaidee
OpenStack Ansible for private cloud at Kaidee
 
How to contribute to OpenStack
How to contribute to OpenStackHow to contribute to OpenStack
How to contribute to OpenStack
 
Docker Workshop Birthday #3
Docker Workshop Birthday #3Docker Workshop Birthday #3
Docker Workshop Birthday #3
 
Docker in Production
Docker in ProductionDocker in Production
Docker in Production
 
Better delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentBetter delivery with DevOps Driven Development
Better delivery with DevOps Driven Development
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)
 
Molome infrastructure
Molome infrastructureMolome infrastructure
Molome infrastructure
 
A Study Of Cloud Computing
A Study Of Cloud ComputingA Study Of Cloud Computing
A Study Of Cloud Computing
 
Web standards: Who cares?
Web standards: Who cares?Web standards: Who cares?
Web standards: Who cares?
 

Recently uploaded

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 

Docker Continuous Delivery Workshop

  • 1. Continuous Delivery Workshop Jirayut Nimsaeng (Dear) Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014
  • 2. Docker installation ● Boot2docker for Windows & Mac OS X Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 – http://boot2docker.io – Ready to run Docker with ● VirtualBox 4.3.14 (latest version is 4.3.16) ● Docker latest version (1.2.0) ● Lightweight Linux distribution ● Boot in 5-10s
  • 3. Docker installation Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 ● Ubuntu based – https://docs.docker.com/installation/ubuntulinux/ – Recommend Ubuntu 14.04 64-bit LTS – curl -sSL https://get.docker.io/ubuntu/ | sudo sh ● Redhat based – https://docs.docker.com/installation/centos/ – Recommend CentOS 7 – EPEL repository enabled first – sudo yum install docker-io
  • 4. Docker architecture Docker Client Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 Host socket Docker Daemon Web Server 80 xxxx Docker Containers Database 3306
  • 5. Boot2docker architecture 2022 2035 2035 Jirayut Nimsaeng 80 Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 Host Virtualbox VM 22 SSH Docker Daemon Web Server boot2docker-vm 80 1024+ Docker Containers Database Host-only 80 3306
  • 6. VirtualBox port forward Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014
  • 7. Run first Docker container Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 ● docker images ● docker pull 10.1.3.227:5000/ubuntu:latest ● docker images ● docker run 10.1.3.227:5000/ubuntu echo “Hello World” ● docker run -i -t 10.1.3.227:5000/ubuntu /bin/bash – whoami – hostname – cat /etc/*release* – exit
  • 8. Docker basic operations Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 ● docker search [name] ● docker pull [name[:tag]] – docker pull centos – docker pull ubuntu:latest ● docker run [-itd] [name[:tag]] [command] ● docker ps ● docker ps -a ● docker rm [name or cid] ● docker rm [part of cid] ● docker images ● docker rmi [name:tag or iid]
  • 9. Image name and tag ● If you do docker command without tag, it will pull Docker image with every tags ● docker pull 10.1.3.227:5000/ubuntu:12.04 Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 ● docker images ● docker pull 10.1.3.227:5000/ubuntu ● docker images
  • 10. Create your first image Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 ● docker run -i -t 10.1.3.227:5000/ubuntu /bin/bash – vim – echo 'Acquire::http::Proxy "http://10.1.3.227:3142";' > /etc/apt/apt.conf.d/11proxy – apt-get update – apt-get install vim – touch vim-installed – ls – exit ● docker ps -a ● docker commit [cid] ubuntu-vim ● docker images ● docker run -i -t ubuntu-vim /bin/bash – ls
  • 11. Docker registry operation ● Register your account at https://hub.docker.com Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 ● You can pull without logging-in ● docker login ● docker push ubuntu-vim ● docker tag ubuntu-vim winggundamth/ubuntu-vim ● docker images ● docker push winggundamth/ubuntu-vim ● docker pull xxx/ubuntu-vim
  • 12. Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 Expose ports ● ifconfig eth1 ● docker run -i -t -p 80:80 ubuntu-vim /bin/bash – apt-get install apache2 – service apache2 start – Go to browser: http://ipaddress – exit ● Commit your apache2 container as ubuntu-apache2 with tag 14.04 and latest ● Clear your stopped containers
  • 13. Run as daemon & expose port option Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 ● docker run ubuntu-apache2 ● docker run -d ubuntu-apache2 service apache2 start ● docker run -d ubuntu-apache2 apachectl -DFOREGROUND ● docker run -d -p 80:80 ubuntu-apache2 apachectl -DFOREGROUND ● docker run -d -p 8880:80 ubuntu-apache2 apachectl -DFOREGROUND ● docker run -d -p 80 ubuntu-apache2 apachectl -DFOREGROUND ● docker ps
  • 14. Docker container operation Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 ● docker ps ● docker stop [container id or name] ● docker start [container id or name] ● docker kill [container id or name] ● docker logs [container id or name] ● docker diff [container id or name] ● docker top [container id or name] ● docker inspect [container id or name]
  • 15. Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 Dockerfile ● Create filename Dockerfile ● Dockerfile Syntax – FROM - defines base image – MAINTAIN – author information – RUN – executes command – ENV – sets environment – EXPOSE – expose a port – ADD – add local file – CMD – default command to execute ● Execute Dockerfile with command docker build ● Docker will keep cache when execute each command above – Use docker build -–no-cache if you want to build without cache
  • 16. SSH Image to Dockerfile FROM ubuntu-vim RUN apt-get install -y openssh-server RUN sed -i 's/required pam_loginuid.so/optional pam_loginuid.so/g' /etc/pam.d/sshd RUN sed -i 's/PermitRootLogin without-password/ Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 PermitRootLogin yes/g' /etc/ssh/sshd_config RUN mkdir /var/run/sshd RUN echo "root:test1234" | chpasswd CMD /usr/sbin/sshd -D EXPOSE 22
  • 17. Build & run image from Dockerfile Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 ● vi Dockerfile ● docker build -t ubuntu-ssh . ● docker images ● docker run -d -p 2230:22 ubuntu-ssh ● docker ps ● ssh -p 2230 root@localhost
  • 18. Let's deploy WordPress Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 Host Docker Daemon Apache Wordpress 80 80 Docker Containers MySQL 3306
  • 19. Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 Build MySQL FROM ubuntu-vim ENV DEBIAN_FRONTEND noninteractive RUN echo 'mysql-server mysql-server/root_password password test1234' | debconf-set-selections RUN echo 'mysql-server mysql-server/root_password_again password test1234' | debconf-set-selections RUN apt-get install -y mysql-server RUN sed -i 's/bind-address/#bind-address/g' /etc/mysql/my.cnf RUN service mysql start && mysql -u root -ptest1234 -e "CREATE DATABASE wordpress CHARACTER SET utf8 COLLATE utf8_general_ci;" && mysql -u root -ptest1234 -e "GRANT ALL PRIVILEGES ON wptest.* TO wptest@'%' IDENTIFIED BY 'wptest' WITH GRANT OPTION;" CMD /usr/bin/mysqld_safe EXPOSE 3306
  • 20. Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 Build Apache FROM ubuntu-vim ENV DEBIAN_FRONTEND noninteractive RUN apt-get install -y libapache2-mod-php5 php5 php5-mysql php5-curl ADD wordpress /var/www/wordpress ADD default /etc/apache2/sites-available/000- default.conf RUN a2enmod rewrite RUN chown -R www-data:www-data /var/www CMD apachectl -DFOREGROUND EXPOSE 80
  • 21. Apache Configuration Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 <VirtualHost *:80> DocumentRoot /var/www/wordpress <Directory /var/www/wordpress> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
  • 22. Wordpress Configuration ● wget http://10.1.3.227:8000/wordpress- 4.0.tar.gz Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 ● tar xvfz wordpress-4.0.tar.gz
  • 23. Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 Run it ● docker run -d -p 3306:3306 --name mysql ubuntu-mysql ● docker run -d -p 80:80 ubuntu-wp ● Go to http://192.168.59.103 – Use 172.17.42.1 as database host ip
  • 24. Continuous Delivery with Docker 5.Get Wordpress Code Jirayut Nimsaeng MySQL Data Image Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 MySQL Dockerfile Data MySQL Data Image Docker Engine Host 1 (Dev/Build Server) Docker Registry Host 2 (Container Server) 1.Build 3.Push 7.Pull 8.Run Docker Engine Container MySQL Data Backup Server 2.Get DB Backup Repository Server Wordpress 4.Build Dockerfile Wordpress Image 6.Push Wordpress Image Container Wordpress
  • 25. Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 Build MySQL FROM ubuntu-vim ENV DEBIAN_FRONTEND noninteractive RUN echo 'mysql-server mysql-server/root_password password test1234' | debconf-set- selections RUN echo 'mysql-server mysql-server/root_password_again password test1234' | debconf-set-selections RUN apt-get install -y mysql-server wget RUN wget http://10.1.3.227:8000/wptest.sql RUN sed -i 's/bind-address/#bind-address/g' /etc/mysql/my.cnf RUN service mysql start && mysql -u root -ptest1234 -e "CREATE DATABASE wptest CHARACTER SET utf8 COLLATE utf8_general_ci;" && mysql -u root -ptest1234 -e "GRANT ALL PRIVILEGES ON wptest.* TO wptest@'%' IDENTIFIED BY 'wptest' WITH GRANT OPTION;" mysql -u root -ptest1234 wptest < wptest.sql && service mysql stop CMD /usr/bin/mysqld_safe EXPOSE 3306
  • 26. Jirayut Nimsaeng Docker for DevOps and Continuous Delivery Workshop October 11, 2014 @ OSS Festival 2014 Build Apache FROM ubuntu-vim ENV DEBIAN_FRONTEND noninteractive RUN apt-get install -y libapache2-mod-php5 php5 php5-mysql php5-curl ADD wordpress /var/www/wordpress ADD default /etc/apache2/sites-available/000- default.conf RUN a2enmod rewrite RUN chown -R www-data:www-data /var/www CMD apachectl -DFOREGROUND EXPOSE 80