SlideShare a Scribd company logo
1 of 261
Download to read offline
Docker
For Developer
#whoami
• Mr. Weerayut Hongsa (@kusumoto_ton)
• Graduated from Prince of Songkla University, Phuket Campus
Major Software Engineer
• System Administrator / Infrastructure Engineer
(Major Kantana Broadcasting Co., Ltd)
• Software Developer (C#, Node.js, Lua, Java, PHP, Javascript)
#Freelance
• Software Developer (iCONEXT Co., Ltd)
• Interesting DevOps, Software Development, Agile Methodology,
CI/CD, Infrastructure As a Code
#resource
https://github.com/Kusumoto/psu-docker-workshop-resource
What is Docker ?
Mr.Weerayut Hongsa - @kusumoto_ton
Mr.Weerayut Hongsa - @kusumoto_ton
This is “Dock” :p
Mr.Weerayut Hongsa - @kusumoto_ton
Mr.Weerayut Hongsa - @kusumoto_ton
Mr.Weerayut Hongsa - @kusumoto_ton
#docker??
“Software Container management platform”
Mr.Weerayut Hongsa - @kusumoto_ton
#docker??
Mr.Weerayut Hongsa - @kusumoto_ton
What is Container ?
Mr.Weerayut Hongsa - @kusumoto_ton
#container??
“Concept for create environment for software,
without disturbing the rest of the core operating system.”
Mr.Weerayut Hongsa - @kusumoto_ton
#container??
Mr.Weerayut Hongsa - @kusumoto_ton
Why to use Docker?
Mr.Weerayut Hongsa - @kusumoto_ton
Ok, I have a new question.
Do you have this problem?
Mr.Weerayut Hongsa - @kusumoto_ton
Mr.Weerayut Hongsa - @kusumoto_ton
Mr.Weerayut Hongsa - @kusumoto_ton
Mr.Weerayut Hongsa - @kusumoto_ton
Mr.Weerayut Hongsa - @kusumoto_ton
FTP
Mr.Weerayut Hongsa - @kusumoto_ton
FTP
Mr.Weerayut Hongsa - @kusumoto_ton
FTP
Mr.Weerayut Hongsa - @kusumoto_ton
FTP
?
?
?
Mr.Weerayut Hongsa - @kusumoto_ton
FTP
?
?
? Software version is not been
control.
Mr.Weerayut Hongsa - @kusumoto_ton
I would say that, Docker can
solve all problem.
Mr.Weerayut Hongsa - @kusumoto_ton
#docker platform
Docker Engine Docker Machine Docker Compose Docker Swarm Docker Registry
Mr.Weerayut Hongsa - @kusumoto_ton
Why not use VM (Virtual Machine) ?
Mr.Weerayut Hongsa - @kusumoto_ton
Virtual Machine (VM) Containers (Docker)
#teamvm vs #teamcontainer
Mr.Weerayut Hongsa - @kusumoto_ton
#docker solution
Mr.Weerayut Hongsa - @kusumoto_ton
#docker edition
• Community Edition (CE)
• Enterprise Edition (EE)
Mr.Weerayut Hongsa - @kusumoto_ton
Case Study (Development Case)
PHP Web Application Development
Mr.Weerayut Hongsa - @kusumoto_ton
PHP version requirement
yii2
CodeIgniterPhalcon
Symfony
Laravel
dokuwiki
Wordpress
Drupal 7 Drupal 8
Joomla
Mr.Weerayut Hongsa - @kusumoto_ton
PHP version requirement
yii2 (PHP 5.4+)
CodeIgniter (PHP 5.6+)Phalcon (PHP 5.5+)
Symfony (PHP 5.5.9+)
Laravel (PHP 5.6.4+)
dokuwiki (PHP 5.3.4+)
Wordpress (PHP 5.2.4+)
Drupal 7 (PHP 5.2.5+) Drupal 8 (PHP 5.5.9+)
Joomla (PHP 5.3.10+)
Mr.Weerayut Hongsa - @kusumoto_ton
PHP version requirement
yii2 (PHP 5.4+)
CodeIgniter (PHP 5.6+)Phalcon (PHP 5.5+)
Symfony (PHP 5.5.9+)
Laravel (PHP 5.6.4+)
dokuwiki (PHP 5.3.4+)
Wordpress (PHP 5.2.4+)
Drupal 7 (PHP 5.2.5+) Drupal 8 (PHP 5.5.9+)
Joomla (PHP 5.3.10+)
Mr.Weerayut Hongsa - @kusumoto_ton
PHP Extension
apxs2, mongo, db2, bcmath, bz2, calendar, cgi, cli, ctype, dab, debug,
odbc, dom, embed, exif, fileinfo, filter, fpm, ftp, gcov, gd, gettext,
hash, iconv, icu, imap, intl, ipc, ipv6, json, kerberos, mbregex,
mbstring, mcrypt, mhash, mysql, openssl, pcntl, pcre, pdo, pgsql,
phar, posix, readline, session, soap, sockets, sqlite, tidy, tokenize,
xml_all, xmlrpc, zip, zlib
Mr.Weerayut Hongsa - @kusumoto_ton
PHP Extension
apxs2, mongo, db2, bcmath, bz2, calendar, cgi, cli, ctype, dab, debug,
odbc, dom, embed, exif, fileinfo, filter, fpm, ftp, gcov, gd, gettext,
hash, iconv, icu, imap, intl, ipc, ipv6, json, kerberos, mbregex,
mbstring, mcrypt, mhash, mysql, openssl, pcntl, pcre, pdo, pgsql,
phar, posix, readline, session, soap, sockets, sqlite, tidy, tokenize,
xml_all, xmlrpc, zip, zlib
Mr.Weerayut Hongsa - @kusumoto_ton
One Server Multiple Projects
Server
App 1
PHP
MySQL
Etc.
App 2
PHP
MariaDB
Etc.
App n
PHP
MySQL
Etc.
Mr.Weerayut Hongsa - @kusumoto_ton
One Server Multiple Projects
Server
App 1
PHP 5.2.1
MySQL 5.1
Etc.
App 2
PHP 5.5.3
MariaDB 10
Etc.
App n
PHP 7.0
MySQL 5.6
Etc.
Mr.Weerayut Hongsa - @kusumoto_ton
Mr.Weerayut Hongsa - @kusumoto_ton
Solve this problem!
Mr.Weerayut Hongsa - @kusumoto_ton
Virtual Machine (VM)
Mr.Weerayut Hongsa - @kusumoto_ton
Virtual Machine (VM)
Can solve this problem
Mr.Weerayut Hongsa - @kusumoto_ton
Virtual Machine (VM)
Can solve this problem
But not lightweight and use much more
resources
Mr.Weerayut Hongsa - @kusumoto_ton
PHPBrew
Mr.Weerayut Hongsa - @kusumoto_ton
PHPBrew
Almost good
Mr.Weerayut Hongsa - @kusumoto_ton
PHPBrew
Almost good
But we need encapsulation, portability and
portable
Mr.Weerayut Hongsa - @kusumoto_ton
Vagrant
Mr.Weerayut Hongsa - @kusumoto_ton
Vagrant
That’s awesome!
Mr.Weerayut Hongsa - @kusumoto_ton
Vagrant
That’s awesome!
But may it be more lightweight and portable
Mr.Weerayut Hongsa - @kusumoto_ton
Docker
Mr.Weerayut Hongsa - @kusumoto_ton
Docker
That’s awesome!
Lightweight, encapsulation, portability and
portable
Mr.Weerayut Hongsa - @kusumoto_ton
Can Docker help you?
• Docker can create environment compatible for your software.
• Docker separate disk space each project.
• You software easy for implementation.
• You software easy deployment and portability.
Mr.Weerayut Hongsa - @kusumoto_ton
PHP Multi Version In One Server
Mr.Weerayut Hongsa - @kusumoto_ton
Case Study (Operations Case)
Large Scale Web Application
Mr.Weerayut Hongsa - @kusumoto_ton
It's time to deployment
Mr.Weerayut Hongsa - @kusumoto_ton
Basic Infrastructure
Mr.Weerayut Hongsa - @kusumoto_ton
Basic Infrastructure
Mr.Weerayut Hongsa - @kusumoto_ton
Basic Infrastructure
Mr.Weerayut Hongsa - @kusumoto_ton
Cloud Infrastructure
Block Storage
Cluster Farm
Mr.Weerayut Hongsa - @kusumoto_ton
Cloud Infrastructure
Block Storage
Cluster Farm
Mr.Weerayut Hongsa - @kusumoto_ton
Cloud Infrastructure
Block Storage
Cluster Farm
Mr.Weerayut Hongsa - @kusumoto_ton
Cloud Infrastructure
Block Storage
Cluster Farm
Mr.Weerayut Hongsa - @kusumoto_ton
Who’s using #docker?
Mr.Weerayut Hongsa - @kusumoto_ton
How do you know software support #docker?
Mr.Weerayut Hongsa - @kusumoto_ton
How do you know software support #docker?
Mr.Weerayut Hongsa - @kusumoto_ton
We talk about an element of Docker.
Mr.Weerayut Hongsa - @kusumoto_ton
Element of Docker
Registry (Docker Repository)ContainerImage
Mr.Weerayut Hongsa - @kusumoto_ton
Image
”A template of container”
Mr.Weerayut Hongsa - @kusumoto_ton
Image
• Linux or Windows Inside.
• Already install the application and environment.
• Build from Dockerfile or container.
• After build image, the image can been read only.
• Template of container.
Mr.Weerayut Hongsa - @kusumoto_ton
Container
”Wrap up a piece of software in a complete filesystem
that contains everything it needs to run”
Mr.Weerayut Hongsa - @kusumoto_ton
Container
• Create from image.
• Running Process
• Can modify/access after container up and running
• Commit change to create image
Mr.Weerayut Hongsa - @kusumoto_ton
Registry
”The repository of images”
Mr.Weerayut Hongsa - @kusumoto_ton
Registry
• Contain a lot of images.
• There are many services, Docker hub is key future.
• Image on registry can pull from any location.
Mr.Weerayut Hongsa - @kusumoto_ton
Image vs Container
• Compare the OOP concept (Image = Class, Container = Object)
• Image can't writable / Container can writeable
• Image can extends
• Image need transform to Container only for runnable.
Mr.Weerayut Hongsa - @kusumoto_ton
Next step, we talk about Docker
workflow.
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from registry)
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from registry)
Image
(from local)
PULL
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from registry)
Image
(from local)
Container
PULL
RUN
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from registry)
Image
(from local)
Container
Container
(changed)
PULL
RUN
CHANGE
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from registry)
Image
(from local)
Container
Container
(changed)
PULL
RUN
CHANGE
COMMIT
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from registry)
Image
(from local)
Container
Container
(changed)
PULL
RUN
CHANGE
COMMIT
PUSH
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from registry)
Image
(from local)
Container
Container
(changed)
PULL
RUN
CHANGE
COMMIT
PUSH
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Dockerfile
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from local)Dockerfile
BUILD
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from local)Dockerfile
Image
(from registry)
PUSH
BUILD
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from local)Dockerfile
BUILD
Image
(from registry)
PUSH
PULL
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from local)Dockerfile
BUILD
Image
(from registry)
PUSH
PULL
Container
RUN
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from local)Dockerfile
BUILD
Image
(from registry)
PUSH
PULL
Container
RUN
Mr.Weerayut Hongsa - @kusumoto_ton
Go back to #docker solution.
Mr.Weerayut Hongsa - @kusumoto_ton
#docker solution
Mr.Weerayut Hongsa - @kusumoto_ton
#docker solution
Image
(from registry)
Image
(from local)
Container
Container
(changed)
PULL
RUN
CHANGE
COMMIT
PUSH
Build
Mr.Weerayut Hongsa - @kusumoto_ton
#docker solution
Image
(from registry)
Image
(from local)
Container
Container
(changed)
PULL
RUN
CHANGE
COMMIT
PUSH
Ship
Mr.Weerayut Hongsa - @kusumoto_ton
#docker solution
Image
(from registry)
Image
(from local)
Container
Container
(changed)
PULL
RUN
CHANGE
COMMIT
PUSH
Run
Mr.Weerayut Hongsa - @kusumoto_ton
#docker solution
Image
(from local)Dockerfile
BUILD
Image
(from registry)
PUSH
PULL
Container
RUN
Build
Mr.Weerayut Hongsa - @kusumoto_ton
#docker solution
Image
(from local)Dockerfile
BUILD
Image
(from registry)
PUSH
PULL
Container
RUN
Ship
Mr.Weerayut Hongsa - @kusumoto_ton
#docker solution
Image
(from local)Dockerfile
BUILD
Image
(from registry)
PUSH
PULL
Container
RUN
Run
Mr.Weerayut Hongsa - @kusumoto_ton
Do you understand #docker
workflow and #docker solution?
Mr.Weerayut Hongsa - @kusumoto_ton
Next step, we talk about #docker
command
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from registry)
Image
(from local)
Container
Container
(changed)
PULL
RUN
CHANGE
COMMIT
PUSH
Mr.Weerayut Hongsa - @kusumoto_ton
Pull image from repository to local
docker pull ubuntu:xenial
Mr.Weerayut Hongsa - @kusumoto_ton
Pull image from repository to local
docker pull ubuntu:xenial
Image Name
Mr.Weerayut Hongsa - @kusumoto_ton
Pull image from repository to local
docker pull ubuntu:xenial
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from registry)
Image
(from local)
Container
Container
(changed)
PULL
RUN
CHANGE
COMMIT
PUSH
Mr.Weerayut Hongsa - @kusumoto_ton
Create container from image and run container
docker run ubuntu:xenial /bin/echo “hello word”
Mr.Weerayut Hongsa - @kusumoto_ton
docker run ubuntu:xenial /bin/echo “hello word”
Image Name execute argument
Create container from image and run container
Mr.Weerayut Hongsa - @kusumoto_ton
docker run -d ubuntu:xenial /bin/echo “hello word”
Image Name execute argument
Create container from image and run container
parameter
Mr.Weerayut Hongsa - @kusumoto_ton
docker run ubuntu:xenial /bin/echo “hello word”
Create container from image and run container
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from registry)
Image
(from local)
Container
Container
(changed)
PULL
RUN
CHANGE
COMMIT
PUSH
Mr.Weerayut Hongsa - @kusumoto_ton
List container
docker ps
Mr.Weerayut Hongsa - @kusumoto_ton
List container
docker ps
Mr.Weerayut Hongsa - @kusumoto_ton
List container (include stopped)
docker ps -a
Mr.Weerayut Hongsa - @kusumoto_ton
List images
docker images
Mr.Weerayut Hongsa - @kusumoto_ton
List images
docker images
Mr.Weerayut Hongsa - @kusumoto_ton
Create a new image from a container’s changes
docker commit d927d74ecd97 kusumoto/testhello:latest
Image NameContainer
Mr.Weerayut Hongsa - @kusumoto_ton
Create a new image from a container’s changes
docker commit d927d74ecd97 kusumoto/testhello:latest
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from registry)
Image
(from local)
Container
Container
(changed)
PULL
RUN
CHANGE
COMMIT
PUSH
Mr.Weerayut Hongsa - @kusumoto_ton
Push image
docker push kusumoto/testhello:latest
Mr.Weerayut Hongsa - @kusumoto_ton
Push image
docker push kusumoto/testhello:latest
Image Name (Match on repository)
Mr.Weerayut Hongsa - @kusumoto_ton
Push image
docker push kusumoto/testhello:latest
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from local)Dockerfile
BUILD
Image
(from registry)
PUSH
PULL
Container
RUN
Mr.Weerayut Hongsa - @kusumoto_ton
Build image from Dockerfile
docker build -t kusumoto/tutu-bigo-tofblive .
Mr.Weerayut Hongsa - @kusumoto_ton
Build image from Dockerfile
docker build -t kusumoto/tutu-bigo-tofblive .
Image Name Path Dockerfileparameter
Mr.Weerayut Hongsa - @kusumoto_ton
Build image from Dockerfile
docker build -t kusumoto/tutu-bigo-tofblive .
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from local)Dockerfile
BUILD
Image
(from registry)
PUSH
PULL
Container
RUN
Mr.Weerayut Hongsa - @kusumoto_ton
Push image
docker push kusumoto/tutu-bigo-tofblive:latest
Mr.Weerayut Hongsa - @kusumoto_ton
Push image
docker push kusumoto/tutu-bigo-tofblive:latest
Image Name (Match on repository)
Mr.Weerayut Hongsa - @kusumoto_ton
Push image
docker push kusumoto/tutu-bigo-tofblive:latest
Mr.Weerayut Hongsa - @kusumoto_ton
#docker workflow
Image
(from local)Dockerfile
BUILD
Image
(from registry)
PUSH
PULL
Container
RUN
Mr.Weerayut Hongsa - @kusumoto_ton
docker run -d kusumoto/docker-openresty:latest
Create container from image and run container
-d : run container in background mode
Mr.Weerayut Hongsa - @kusumoto_ton
docker run -d kusumoto/docker-openresty:latest
Create container from image and run container
Mr.Weerayut Hongsa - @kusumoto_ton
Utility Command
Mr.Weerayut Hongsa - @kusumoto_ton
docker exec -it 158b4a099baf bash
Execute shell into container
Mr.Weerayut Hongsa - @kusumoto_ton
docker exec -it 158b4a099baf bash
Execute shell into container
Mr.Weerayut Hongsa - @kusumoto_ton
docker run -d -p 80:80 nginx:latest
Image Name
Create container and expose port to real host
Run container background
Expose port from container port 80 to local port 80 [local:container]
Mr.Weerayut Hongsa - @kusumoto_ton
docker run -d -p 80:80 nginx:latest
Create container and expose port to real host
Mr.Weerayut Hongsa - @kusumoto_ton
docker run -d -v /home/kusumoto/test:/usr/share/nginx/html -p 80:80 nginx:latest
Mapping host volume to container
Mr.Weerayut Hongsa - @kusumoto_ton
docker run -d -v /home/kusumoto/test:/usr/share/nginx/html -p 80:80 nginx:latest
Mapping host volume to container
Run container background
Expose port from container port 80 to local port 80 [local:container]
Image Name
Mapping volume to container [host:container]
Mr.Weerayut Hongsa - @kusumoto_ton
docker run -d -v /home/kusumoto/test:/usr/share/nginx/html -p 80:80 nginx:latest
Mapping host volume to container
Mr.Weerayut Hongsa - @kusumoto_ton
docker system prune
System cleanup
Mr.Weerayut Hongsa - @kusumoto_ton
docker system prune
System cleanup
Mr.Weerayut Hongsa - @kusumoto_ton
docker login
Registry Authentication
Mr.Weerayut Hongsa - @kusumoto_ton
docker login
Registry Authentication
Mr.Weerayut Hongsa - @kusumoto_ton
Do you want to encapsulate your
container?
Mr.Weerayut Hongsa - @kusumoto_ton
Next step, we talk about #docker
network
Mr.Weerayut Hongsa - @kusumoto_ton
What is Docker Network?
”Control communicate between container”
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Network
Mr.Weerayut Hongsa - @kusumoto_ton
Create new #docker network
docker network create --driver bridge --subnet=192.168.1.0/24 --ip-range=192.168.1.128/25
--gateway=192.168.1.5 --opt="com.docker.network.mtu"="1500" backend
Mr.Weerayut Hongsa - @kusumoto_ton
Create new #docker network
docker network create --driver bridge --subnet=192.168.1.0/24 --ip-range=192.168.1.128/25
--gateway=192.168.1.5 --opt="com.docker.network.mtu"="1500" backend
Network driver Network subnet IP range for container use.
Gateway for
master subnet Network name
Mr.Weerayut Hongsa - @kusumoto_ton
Create new #docker network
docker network create --driver bridge --subnet=192.168.1.0/24 --ip-range=192.168.1.128/25
--gateway=192.168.1.5 --opt="com.docker.network.mtu"="1500" backend
Mr.Weerayut Hongsa - @kusumoto_ton
List all #docker network
docker network ls
Mr.Weerayut Hongsa - @kusumoto_ton
List all #docker network
docker network ls
Mr.Weerayut Hongsa - @kusumoto_ton
Delete #docker network
docker network rm backend
Mr.Weerayut Hongsa - @kusumoto_ton
Delete #docker network
docker network rm backend
Network name
Mr.Weerayut Hongsa - @kusumoto_ton
Delete #docker network
docker network rm backend
Mr.Weerayut Hongsa - @kusumoto_ton
Run container and attach network
docker run -d --name nginx --net backend --ip="192.168.1.130" -p 80:8080 nginx
Mr.Weerayut Hongsa - @kusumoto_ton
Run container and attach network
docker run -d --name nginx --net backend --ip="192.168.1.130" -p 80:8080 nginx
Attach network to
container
Assign ip address to
container
Mr.Weerayut Hongsa - @kusumoto_ton
Run container and attach network
docker run -d --name nginx --net backend --ip="192.168.1.130" -p 80:8080 nginx
Mr.Weerayut Hongsa - @kusumoto_ton
Do you want to store and control
persistent data in container?
Mr.Weerayut Hongsa - @kusumoto_ton
Next step, we talk about #docker
Volume
Mr.Weerayut Hongsa - @kusumoto_ton
What is Docker Volume?
”Concept for manage persistent data in
container”
Mr.Weerayut Hongsa - @kusumoto_ton
Type of Data Volumes
• Mount a host directory as a data volume
• Mount a shared-storage volume as a data volume
• Mount a host file as a data volume
Mr.Weerayut Hongsa - @kusumoto_ton
Mount a host directory as a data volume
Mr.Weerayut Hongsa - @kusumoto_ton
docker run -d -v /home/kusumoto/test:/usr/share/nginx/html -p 80:80 nginx:latest
docker run -d -v /home/kusumoto/test:/usr/share/nginx/html -p 80:80 nginx:latest
Run container background
Expose port from container port 80 to local port 80 [local:container]
Image Name
Mapping volume to container [host:container]
Mr.Weerayut Hongsa - @kusumoto_ton
Mount a host directory as a data volume
Mount a share-storage as a data volume
Mr.Weerayut Hongsa - @kusumoto_ton
docker volume create --driver=flocker volumename
Mount a share-storage as a data volume
Mr.Weerayut Hongsa - @kusumoto_ton
docker volume create --driver=flocker volumename
File System Driver
Mount a share-storage as a data volume
Mr.Weerayut Hongsa - @kusumoto_ton
docker container run -it –v volumename:/data busybox sh
Mount a share-storage as a data volume
Mr.Weerayut Hongsa - @kusumoto_ton
docker container run -it –v volumename:/data busybox sh
Mapping file to container [share-storage:container]
Mount a host file as a data volume
Mr.Weerayut Hongsa - @kusumoto_ton
docker run --rm -it -v ~/.bash_history:/root/.bash_history ubuntu /bin/bash
Mount a host file as a data volume
Mr.Weerayut Hongsa - @kusumoto_ton
docker run --rm -it -v ~/.bash_history:/root/.bash_history ubuntu /bin/bash
Mapping file to container [host:container]
Do you want make an easy to control
multiple #docker node?
Mr.Weerayut Hongsa - @kusumoto_ton
We’re recommend “Docker Machine”
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Machine is attached from
Docker Toolbox
Mr.Weerayut Hongsa - @kusumoto_ton
What is Docker Machine?
”The tool for management #docker node”
Mr.Weerayut Hongsa - @kusumoto_ton
Create new #docker node
docker-machine create --driver virtualbox node1
Machine Name
Driver for connect
Mr.Weerayut Hongsa - @kusumoto_ton
Driver for docker-machine are support
Mr.Weerayut Hongsa - @kusumoto_ton
Create new #docker node
docker-machine create --driver virtualbox node1
Mr.Weerayut Hongsa - @kusumoto_ton
List #docker node
docker-machine ls
Mr.Weerayut Hongsa - @kusumoto_ton
List #docker node
docker-machine ls
Mr.Weerayut Hongsa - @kusumoto_ton
Start #docker node by docker-machine
docker-machine start node1
Mr.Weerayut Hongsa - @kusumoto_ton
Start #docker node by docker-machine
docker-machine start node1
Machine Name
Mr.Weerayut Hongsa - @kusumoto_ton
Start #docker node by docker-machine
docker-machine start node1
Mr.Weerayut Hongsa - @kusumoto_ton
Stop #docker node by docker-machine
docker-machine stop node1
Mr.Weerayut Hongsa - @kusumoto_ton
Stop #docker node by docker-machine
docker-machine stop node1
Machine Name
Mr.Weerayut Hongsa - @kusumoto_ton
Stop #docker node by docker-machine
docker-machine stop node1
Mr.Weerayut Hongsa - @kusumoto_ton
Remove #docker node
docker-machine rm node1
Mr.Weerayut Hongsa - @kusumoto_ton
Remove #docker node
docker-machine rm node1
Machine Name
Mr.Weerayut Hongsa - @kusumoto_ton
Remove #docker node
docker-machine rm node1
Mr.Weerayut Hongsa - @kusumoto_ton
Show docker-machine environment
docker-machine env
Mr.Weerayut Hongsa - @kusumoto_ton
Show docker-machine environment
docker-machine env
Mr.Weerayut Hongsa - @kusumoto_ton
Connect shell to you #docker node
eval "$(docker-machine env node1)"
Mr.Weerayut Hongsa - @kusumoto_ton
Connect shell to you #docker node
eval "$(docker-machine env node1)"
Mr.Weerayut Hongsa - @kusumoto_ton
Do you think the container
management very difficult?
Mr.Weerayut Hongsa - @kusumoto_ton
Have a tooling for container
management make an easy?
Mr.Weerayut Hongsa - @kusumoto_ton
We’re recommend “Docker Compose”
Mr.Weerayut Hongsa - @kusumoto_ton
What is Docker Compose?
”A tool for defining and running multi-
container Docker applications.”
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Compose
• A template for create and configuration container
• YML format
• Up and running in one command
• Update all container in one command
Mr.Weerayut Hongsa - @kusumoto_ton
Example docker-compose.yml
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: "redis:alpine"
Mr.Weerayut Hongsa - @kusumoto_ton
Command for execute docker-compose
Mr.Weerayut Hongsa - @kusumoto_ton
Up all container in docker-compose.yml
docker-compose up -d
Mr.Weerayut Hongsa - @kusumoto_ton
Up all container in docker-compose.yml
docker-compose up -d
Run all container in
background
Mr.Weerayut Hongsa - @kusumoto_ton
Up all container in docker-compose.yml
docker-compose up -d
Mr.Weerayut Hongsa - @kusumoto_ton
Down all container in docker-compose.yml
docker-compose down
Mr.Weerayut Hongsa - @kusumoto_ton
Down all container in docker-compose.yml
docker-compose down
Mr.Weerayut Hongsa - @kusumoto_ton
List container in docker-compose stack
docker-compose ps
Mr.Weerayut Hongsa - @kusumoto_ton
List container in docker-compose stack
docker-compose ps
Mr.Weerayut Hongsa - @kusumoto_ton
If your application have a many
current user?
Mr.Weerayut Hongsa - @kusumoto_ton
Do you want to scale your
application?
Mr.Weerayut Hongsa - @kusumoto_ton
We’re recommend “Docker Swarm”
Mr.Weerayut Hongsa - @kusumoto_ton
You can scale container to multiple
machine via Docker Swarm
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Swarm
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Swarm
How can you control
cluster?
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Swarm
Choose a once node
promote to manager
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Swarm
Manager
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Swarm
ManagerNode Node Node Node
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Swarm
ManagerNode Node Node Node
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Swarm
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Swarm
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Swarm
”Run the Docker in cluster mode”
Mr.Weerayut Hongsa - @kusumoto_ton
Docker Swarm
• Scalable container to multiple docker node.
• Control container multiple docker node via docker swarm manager.
• In Docker swarm, you’ll have some new concepts of “services” and “tasks”.
Mr.Weerayut Hongsa - @kusumoto_ton
Initialize Docker Swarm
docker swarm init
Mr.Weerayut Hongsa - @kusumoto_ton
Initialize Docker Swarm
docker swarm init
Mr.Weerayut Hongsa - @kusumoto_ton
Initialize Docker Swarm
docker swarm init
Command for join to
swarm
Mr.Weerayut Hongsa - @kusumoto_ton
Join node to your Docker Swarm
docker swarm join --token SWMTKN-1-3o58oh8ahb0ebzqen63pp8dub4u91oqfy4erenaswbulih1ywr-
4xr2p6ipg2tqxeczw6cp183ob 192.168.99.100:2377
Mr.Weerayut Hongsa - @kusumoto_ton
Join node to your Docker Swarm
docker swarm join --token SWMTKN-1-3o58oh8ahb0ebzqen63pp8dub4u91oqfy4erenaswbulih1ywr-
4xr2p6ipg2tqxeczw6cp183ob 192.168.99.100:2377
IP Address swarm
manager
Token
Mr.Weerayut Hongsa - @kusumoto_ton
Join node to your Docker Swarm
docker swarm join --token SWMTKN-1-3o58oh8ahb0ebzqen63pp8dub4u91oqfy4erenaswbulih1ywr-
4xr2p6ipg2tqxeczw6cp183ob 192.168.99.100:2377
Mr.Weerayut Hongsa - @kusumoto_ton
List all node list and node status
docker node ls
Mr.Weerayut Hongsa - @kusumoto_ton
List all node list and node status
docker node ls
Mr.Weerayut Hongsa - @kusumoto_ton
Leave node from swarm cluster
docker swarm leave
Mr.Weerayut Hongsa - @kusumoto_ton
Leave node from swarm cluster
docker swarm leave
Mr.Weerayut Hongsa - @kusumoto_ton
Create new service in swarm cluster
docker service create --name nginx-web -p 80:80 nginx:latest
Mr.Weerayut Hongsa - @kusumoto_ton
Create new service in swarm cluster
docker service create --name nginx-web -p 80:80 nginx:latest
Image Name
Expose port from service port 80 to local port 80 [local:container]
Service name
Mr.Weerayut Hongsa - @kusumoto_ton
Create new service in swarm cluster
docker service create --name nginx-web -p 80:80 nginx:latest
Mr.Weerayut Hongsa - @kusumoto_ton
List all service in swarm cluster
docker service ls
Mr.Weerayut Hongsa - @kusumoto_ton
List all service in swarm cluster
docker service ls
Mr.Weerayut Hongsa - @kusumoto_ton
Scale up/down service in swarm cluster
docker service scale nginx=3
Mr.Weerayut Hongsa - @kusumoto_ton
Scale up/down service in swarm cluster
docker service scale nginx=3
Service name
Number of container
Mr.Weerayut Hongsa - @kusumoto_ton
Scale up/down service in swarm cluster
docker service scale nginx=3
Mr.Weerayut Hongsa - @kusumoto_ton
Update/Apply service in swarm cluster
docker service update nginx
Mr.Weerayut Hongsa - @kusumoto_ton
Update/Apply service in swarm cluster
docker service update nginx
Service name
Mr.Weerayut Hongsa - @kusumoto_ton
Update/Apply service in swarm cluster
docker service update nginx
Mr.Weerayut Hongsa - @kusumoto_ton
Delete service in swarm cluster
docker service rm nginx
Mr.Weerayut Hongsa - @kusumoto_ton
Delete service in swarm cluster
docker service rm nginx
Service name
Mr.Weerayut Hongsa - @kusumoto_ton
Delete service in swarm cluster
docker service rm nginx
Mr.Weerayut Hongsa - @kusumoto_ton
Add service stack from docker-compose.yml to swarm
cluster
docker stack deploy --compose-file docker-compose.yml my_stack
Mr.Weerayut Hongsa - @kusumoto_ton
Add service stack from docker-compose.yml to swarm
cluster
docker stack deploy --compose-file docker-compose.yml my_stack
Compose file Stack name
Mr.Weerayut Hongsa - @kusumoto_ton
Add service stack from docker-compose.yml to swarm
cluster
docker stack deploy --compose-file docker-compose.yml my_stack
Mr.Weerayut Hongsa - @kusumoto_ton
Delete stack in swarm cluster
docker stack rm my_stack
Mr.Weerayut Hongsa - @kusumoto_ton
Delete stack in swarm cluster
docker stack rm my_stack
Stack name
Mr.Weerayut Hongsa - @kusumoto_ton
Delete stack in swarm cluster
docker stack rm my_stack
Mr.Weerayut Hongsa - @kusumoto_ton
If you want to create your #docker
image.
Mr.Weerayut Hongsa - @kusumoto_ton
but need to customize image via
script.
Mr.Weerayut Hongsa - @kusumoto_ton
We’re recommend “Dockerfile”
Mr.Weerayut Hongsa - @kusumoto_ton
Format of the Dockerfile
# Comment
INSTRUCTION arguments
Mr.Weerayut Hongsa - @kusumoto_ton
Example Dockerfile
FROM scratch
COPY hello /
CMD ["/hello"]
Mr.Weerayut Hongsa - @kusumoto_ton
Example Dockerfile
FROM scratch
COPY hello /
CMD ["/hello"]
FROM microsoft/nanoserver
COPY hello.txt C:
CMD ["cmd", "/C", "type C:hello.txt"]
Mr.Weerayut Hongsa - @kusumoto_ton
Dockerfile Instruction
• FROM
• RUN
• CMD
• EXPOSE
• ENV
• ADD
• COPY
• ENTRYPOINT
• VOLUME
• USER
• WORKDIR
• ARG
Mr.Weerayut Hongsa - @kusumoto_ton
.dockerignore file
• Defined filename or path ignore in docker image.
• .dockerignore is same .gitignore
Mr.Weerayut Hongsa - @kusumoto_ton
Build image from Dockerfile
docker build -t kusumoto/tutu-bigo-tofblive .
Mr.Weerayut Hongsa - @kusumoto_ton
Build image from Dockerfile
docker build -t kusumoto/tutu-bigo-tofblive .
Image Name Path Dockerfileparameter
Mr.Weerayut Hongsa - @kusumoto_ton
Build image from Dockerfile
docker build -t kusumoto/tutu-bigo-tofblive .
Mr.Weerayut Hongsa - @kusumoto_ton

More Related Content

What's hot

Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAlan Forbes
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to dockerJohn Willis
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSFrank Munz
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to DockerJian Wu
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionHao Fan
 
Orchestrating Docker containers at scale
Orchestrating Docker containers at scaleOrchestrating Docker containers at scale
Orchestrating Docker containers at scaleMaciej Lasyk
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Jérôme Petazzoni
 
Visualising Basic Concepts of Docker
Visualising Basic Concepts of Docker Visualising Basic Concepts of Docker
Visualising Basic Concepts of Docker vishnu rao
 
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12dotCloud
 
Docker - 15 great Tutorials
Docker - 15 great TutorialsDocker - 15 great Tutorials
Docker - 15 great TutorialsJulien Barbier
 
Docker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registryDocker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registrydotCloud
 
Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)Rama Krishna B
 
Introduction to Containers and Docker
Introduction to Containers and DockerIntroduction to Containers and Docker
Introduction to Containers and DockerRob Loach
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Jonas Rosland
 
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
 
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Docker Intro at the Google Developer Group and Google Cloud Platform Meet UpDocker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Docker Intro at the Google Developer Group and Google Cloud Platform Meet UpJérôme Petazzoni
 

What's hot (20)

Docker - introduction
Docker - introductionDocker - introduction
Docker - introduction
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCS
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to Docker
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Orchestrating Docker containers at scale
Orchestrating Docker containers at scaleOrchestrating Docker containers at scale
Orchestrating Docker containers at scale
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9
 
Visualising Basic Concepts of Docker
Visualising Basic Concepts of Docker Visualising Basic Concepts of Docker
Visualising Basic Concepts of Docker
 
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
 
Docker and stuff
Docker and stuffDocker and stuff
Docker and stuff
 
Docker - 15 great Tutorials
Docker - 15 great TutorialsDocker - 15 great Tutorials
Docker - 15 great Tutorials
 
Docker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registryDocker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registry
 
Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)
 
Introduction to Containers and Docker
Introduction to Containers and DockerIntroduction to Containers and Docker
Introduction to Containers and Docker
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
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
 
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Docker Intro at the Google Developer Group and Google Cloud Platform Meet UpDocker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
 

Viewers also liked

A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersJérôme Petazzoni
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
코드품질 개선을 위한 GS SHOP 고군분투기
코드품질 개선을 위한 GS SHOP 고군분투기코드품질 개선을 위한 GS SHOP 고군분투기
코드품질 개선을 위한 GS SHOP 고군분투기Darion Kim
 
Why Docker
Why DockerWhy Docker
Why DockerdotCloud
 
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
Understanding deep learning requires rethinking generalization (2017)    2 2(2)Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Understanding deep learning requires rethinking generalization (2017) 2 2(2)정훈 서
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기Tae Young Lee
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Yevgeniy Brikman
 
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesRootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesDaniel Garcia (a.k.a cr0hn)
 
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with dockerRuoshi Ling
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker, Inc.
 
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
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java DevelopersNGINX, Inc.
 
Package your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesPackage your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesArun Gupta
 
Docker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityDocker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityJérôme Petazzoni
 
Docker and configuration management
Docker and configuration managementDocker and configuration management
Docker and configuration managementMukta Aphale
 
시나브로 Django 발표
시나브로 Django 발표시나브로 Django 발표
시나브로 Django 발표명서 강
 
CodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniter
CodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniterCodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniter
CodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniterWeerayut Hongsa
 
Monitoring with prometheus
Monitoring with prometheusMonitoring with prometheus
Monitoring with prometheusKasper Nissen
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a DockerOpen Canarias
 
Immutable infrastructure with Docker and EC2
Immutable infrastructure with Docker and EC2Immutable infrastructure with Docker and EC2
Immutable infrastructure with Docker and EC2dotCloud
 

Viewers also liked (20)

A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things Containers
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
코드품질 개선을 위한 GS SHOP 고군분투기
코드품질 개선을 위한 GS SHOP 고군분투기코드품질 개선을 위한 GS SHOP 고군분투기
코드품질 개선을 위한 GS SHOP 고군분투기
 
Why Docker
Why DockerWhy Docker
Why Docker
 
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
Understanding deep learning requires rethinking generalization (2017)    2 2(2)Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
 
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesRootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
 
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with docker
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to 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 for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java Developers
 
Package your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesPackage your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and Kubernetes
 
Docker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityDocker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and security
 
Docker and configuration management
Docker and configuration managementDocker and configuration management
Docker and configuration management
 
시나브로 Django 발표
시나브로 Django 발표시나브로 Django 발표
시나브로 Django 발표
 
CodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniter
CodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniterCodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniter
CodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniter
 
Monitoring with prometheus
Monitoring with prometheusMonitoring with prometheus
Monitoring with prometheus
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Immutable infrastructure with Docker and EC2
Immutable infrastructure with Docker and EC2Immutable infrastructure with Docker and EC2
Immutable infrastructure with Docker and EC2
 

Similar to Basic docker for developer

Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Jody Garnett
 
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on OpenstackScaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on OpenstackBobby DeVeaux, DevOps Consultant
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...Gaetano Giunta
 
Paving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferencedayPaving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferencedayCésar Hernández
 
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0César Hernández
 
How to analyze your codebase with Exakat using Docker - Longhorn PHP
How to analyze your codebase with Exakat using Docker - Longhorn PHPHow to analyze your codebase with Exakat using Docker - Longhorn PHP
How to analyze your codebase with Exakat using Docker - Longhorn PHPDana Luther
 
Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE César Hernández
 
Terraform AWS modules and some best practices - September 2019
Terraform AWS modules and some best practices - September 2019Terraform AWS modules and some best practices - September 2019
Terraform AWS modules and some best practices - September 2019Anton Babenko
 
2010 code camp rest for the rest of us
2010 code camp   rest for the rest of us2010 code camp   rest for the rest of us
2010 code camp rest for the rest of usKen Yagen
 
PuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPhil Zimmerman
 
Tool it Up! - Session #1 - Xhprof
Tool it Up! - Session #1 - XhprofTool it Up! - Session #1 - Xhprof
Tool it Up! - Session #1 - Xhproftoolitup
 
Updates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&DUpdates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&DHiromu Hota
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSRoss Kukulinski
 
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim MeuselModulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim MeuselPuppet
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014Rafe Colton
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...Docker, Inc.
 
リバースプロキシで webサーバを集約 ついでにdocker化しよう
リバースプロキシでwebサーバを集約ついでにdocker化しようリバースプロキシでwebサーバを集約ついでにdocker化しよう
リバースプロキシで webサーバを集約 ついでにdocker化しようYasunori Kuji
 

Similar to Basic docker for developer (20)

Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...
 
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on OpenstackScaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
 
Docker 2014
Docker 2014Docker 2014
Docker 2014
 
Paving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferencedayPaving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferenceday
 
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
 
How to analyze your codebase with Exakat using Docker - Longhorn PHP
How to analyze your codebase with Exakat using Docker - Longhorn PHPHow to analyze your codebase with Exakat using Docker - Longhorn PHP
How to analyze your codebase with Exakat using Docker - Longhorn PHP
 
Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE
 
Terraform AWS modules and some best practices - September 2019
Terraform AWS modules and some best practices - September 2019Terraform AWS modules and some best practices - September 2019
Terraform AWS modules and some best practices - September 2019
 
2010 code camp rest for the rest of us
2010 code camp   rest for the rest of us2010 code camp   rest for the rest of us
2010 code camp rest for the rest of us
 
PuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With Notes
 
What is octohost?
What is octohost?What is octohost?
What is octohost?
 
Tool it Up! - Session #1 - Xhprof
Tool it Up! - Session #1 - XhprofTool it Up! - Session #1 - Xhprof
Tool it Up! - Session #1 - Xhprof
 
Updates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&DUpdates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&D
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim MeuselModulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
 
リバースプロキシで webサーバを集約 ついでにdocker化しよう
リバースプロキシでwebサーバを集約ついでにdocker化しようリバースプロキシでwebサーバを集約ついでにdocker化しよう
リバースプロキシで webサーバを集約 ついでにdocker化しよう
 

More from Weerayut Hongsa

CodeIgniter For Project : Lesson 106 - Model
CodeIgniter For Project : Lesson 106 - ModelCodeIgniter For Project : Lesson 106 - Model
CodeIgniter For Project : Lesson 106 - ModelWeerayut Hongsa
 
CodeIgniter For Project : Lesson 105 - Helper and Library
CodeIgniter For Project : Lesson 105 - Helper and LibraryCodeIgniter For Project : Lesson 105 - Helper and Library
CodeIgniter For Project : Lesson 105 - Helper and LibraryWeerayut Hongsa
 
CodeIgniter For Project : Lesson 104 - Controller & View
CodeIgniter For Project : Lesson 104 - Controller & ViewCodeIgniter For Project : Lesson 104 - Controller & View
CodeIgniter For Project : Lesson 104 - Controller & ViewWeerayut Hongsa
 
CodeIgniter For Project : Lesson 103 - Introduction to Codeigniter
CodeIgniter For Project : Lesson 103 - Introduction to CodeigniterCodeIgniter For Project : Lesson 103 - Introduction to Codeigniter
CodeIgniter For Project : Lesson 103 - Introduction to CodeigniterWeerayut Hongsa
 
Codeigniter Training Part3
Codeigniter Training Part3Codeigniter Training Part3
Codeigniter Training Part3Weerayut Hongsa
 
Codeigniter Training Part2
Codeigniter Training Part2Codeigniter Training Part2
Codeigniter Training Part2Weerayut Hongsa
 

More from Weerayut Hongsa (6)

CodeIgniter For Project : Lesson 106 - Model
CodeIgniter For Project : Lesson 106 - ModelCodeIgniter For Project : Lesson 106 - Model
CodeIgniter For Project : Lesson 106 - Model
 
CodeIgniter For Project : Lesson 105 - Helper and Library
CodeIgniter For Project : Lesson 105 - Helper and LibraryCodeIgniter For Project : Lesson 105 - Helper and Library
CodeIgniter For Project : Lesson 105 - Helper and Library
 
CodeIgniter For Project : Lesson 104 - Controller & View
CodeIgniter For Project : Lesson 104 - Controller & ViewCodeIgniter For Project : Lesson 104 - Controller & View
CodeIgniter For Project : Lesson 104 - Controller & View
 
CodeIgniter For Project : Lesson 103 - Introduction to Codeigniter
CodeIgniter For Project : Lesson 103 - Introduction to CodeigniterCodeIgniter For Project : Lesson 103 - Introduction to Codeigniter
CodeIgniter For Project : Lesson 103 - Introduction to Codeigniter
 
Codeigniter Training Part3
Codeigniter Training Part3Codeigniter Training Part3
Codeigniter Training Part3
 
Codeigniter Training Part2
Codeigniter Training Part2Codeigniter Training Part2
Codeigniter Training Part2
 

Recently uploaded

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
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
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Recently uploaded (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
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
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

Basic docker for developer