Docker İle Web Hosting

29
Oğuzhan YILMAZ MaestroPanel Kurucusu [email protected] Docker ile Web Hosting MaestroPanel Drink-Up 18 Ağustos 2016

Transcript of Docker İle Web Hosting

Page 1: Docker İle Web Hosting

Oğuzhan YILMAZMaestroPanel [email protected]

Docker ile Web Hosting MaestroPanel Drink-Up 18 Ağustos 2016

Page 2: Docker İle Web Hosting

Sorun?

Page 3: Docker İle Web Hosting

Problemin Matrix’i

Page 4: Docker İle Web Hosting

1960 Öncesin Taşımacılık

Page 5: Docker İle Web Hosting

Başka Bir Açıdan Problemin Matrix’i

Page 6: Docker İle Web Hosting

Çözüm: Intermodal Shipping Container

Page 7: Docker İle Web Hosting

Docker, Uygulamalar için Container Sistemi

Page 8: Docker İle Web Hosting

Docker (2013)Nedir?

Docker Engine Docker Daemon Command Line Docker Registry

Docker Hub Cloud Servisi Uygulama Paylaşımı Otomatik İş Akışları

Cgroups Namespace Image DockerContainer

CPU, RAM, Disk, IO UTS,IPC,PID,NET,USR TAR

Page 9: Docker İle Web Hosting

DockerfileNedir?

Makefile Benzeri Genişletilebilir Yeni Docker Imajı Çıktısı Verir Container Emilerini Belirler

Dockerfile BaseImage

DockerContainer

Page 10: Docker İle Web Hosting

FROM node:latestMAINTAINAR MaestroPanel <[email protected]>RUN cd /src; npm install

RUN useradd -c 'Node.js user' -m -d /home/node -s /bin/bash nodeRUN chown -R node.node /srcUSER nodeENV HOME /home/node

EXPOSE 8080CMD ["node", "/src/index.js"]

docker build --tag node:latest --file mynode .

Dockerfile

Page 11: Docker İle Web Hosting
Page 12: Docker İle Web Hosting

MimariOCI – Open Container Initiative

runC

universal container runtime

Docker Engine

Kernel 3.10+

containerd

client

App1 App2 App3 App4

stop,start,create,delete

Page 13: Docker İle Web Hosting

Fark

Klasik Docker

1. Web Server’ı Kur2. PHP Kur (Versiyon?)3. Web Server’ı PHP’ye göre

konfigüre et. (Fast-Cgi, FPM?)4. Vhost’u konfigüre et.5. MySQL’i kur6. FTP’yi Kur, Konfigüre et.7. Wordpress Dosyalarını FTP

alanına kopyala.8. Bakımlarını takip et.

1. Docker pull wordpress2. Docker pull mysql3. Docker run wordpress –link

mysql

WordPress çalıştıralım;

Page 14: Docker İle Web Hosting

www.boycottdocker.org

Page 15: Docker İle Web Hosting

Demo

Page 16: Docker İle Web Hosting

Web Hosting

Page 17: Docker İle Web Hosting

Docker Daemon KoruyunDocker ile Hosting

docker daemon --tlsverify --tlscacert=ca.pem \--tlscert=server-cert.pem --tlskey=server-key.pem \-H=0.0.0.0:2376 --icc=false ....

firewall-cmd --permanent --zone=public --add-source=192.168.0.65/32

firewall-cmd --reload

docker daemon --config-file /etc/docker/daemon.json

veya

Page 18: Docker İle Web Hosting

Containerları root hakkı ile çalıştırmayınDocker ile Hosting

docker run --name domain.com --user domain.com –d wordpress:latest –h domain.com

docker run --name domain.com --user domain.com –d wordpress:latest --cap-drop=all

Daha güvenli

useradd –M -s /sbin/nologin domain.com –c ‘docker user’ –g containers

Page 19: Docker İle Web Hosting

Disk volume’larını İzole YapınDocker ile Hosting

docker volume create --name domain.com –opt o=size=1000m,uid=1543

Page 20: Docker İle Web Hosting

Proses’leri ve Dosyaları LimitleyinDocker ile Hosting

docker run --name domain.com --ulimit nofile=128:256 --ulimit nproc=32:64

Page 21: Docker İle Web Hosting

CPU’yu Limitleyin

Docker ile Hosting

docker run --name domain.com --cpuset=0,1 --cpu-quota=25000

Page 22: Docker İle Web Hosting

Memor Limitleyin

Docker ile Hosting

docker run --name domain.com -m 128m --oom-kill-disable

Page 23: Docker İle Web Hosting

Reverse-Proxy KullanınDocker ile Hosting

server { listen 80; server_name domain.com;

location / { proxy_pass http://192.168.59.103:8080/; }}

Nginx vs. HAproxy

domain.com.conf

Page 24: Docker İle Web Hosting

Container PaketiDocker ile Hosting

150$/Ay4 Core CPU

8 GB Ram

10 GB Disk

Private Registry*

DNS Management

2 Public IP

100.000 GB Traffic

MySQL, MSSQL Service*

Backup Data*

Page 25: Docker İle Web Hosting

ÜrünlerDocker ile Hosting

• Kubernetes (kubernetes.io)• Jelastic (jelastic.com)• KuberDock (cloudlinux.com)• Mesos (mesos.apache.org)• Docker Swarm (docker.com)• Deis (deis.io)

Page 26: Docker İle Web Hosting

Dock

er D

aem

on (A

PI,C

LI)

FTP N

ginx

DNS

SQL

DockerRegistry

containers

volumesimages

port

map

s

domain.com

domain.comcontainer

domain.comvolume

Page 27: Docker İle Web Hosting

12factorhttp://12factor.net/

Page 28: Docker İle Web Hosting

https://github.com/maestropanel/mpod

mpod

Page 29: Docker İle Web Hosting

?Oğuzhan YILMAZ

MaestroPanel [email protected]