Docker İle Web Hosting
-
Upload
oguzhan-yilmaz -
Category
Technology
-
view
127 -
download
2
Transcript of Docker İle Web Hosting
Oğuzhan YILMAZMaestroPanel [email protected]
Docker ile Web Hosting MaestroPanel Drink-Up 18 Ağustos 2016
Sorun?
Problemin Matrix’i
1960 Öncesin Taşımacılık
Başka Bir Açıdan Problemin Matrix’i
Çözüm: Intermodal Shipping Container
Docker, Uygulamalar için Container Sistemi
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
DockerfileNedir?
Makefile Benzeri Genişletilebilir Yeni Docker Imajı Çıktısı Verir Container Emilerini Belirler
Dockerfile BaseImage
DockerContainer
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
MimariOCI – Open Container Initiative
runC
universal container runtime
Docker Engine
Kernel 3.10+
containerd
client
App1 App2 App3 App4
stop,start,create,delete
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;
www.boycottdocker.org
Demo
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
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
Disk volume’larını İzole YapınDocker ile Hosting
docker volume create --name domain.com –opt o=size=1000m,uid=1543
Proses’leri ve Dosyaları LimitleyinDocker ile Hosting
docker run --name domain.com --ulimit nofile=128:256 --ulimit nproc=32:64
CPU’yu Limitleyin
Docker ile Hosting
docker run --name domain.com --cpuset=0,1 --cpu-quota=25000
Memor Limitleyin
Docker ile Hosting
docker run --name domain.com -m 128m --oom-kill-disable
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
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*
ÜrünlerDocker ile Hosting
• Kubernetes (kubernetes.io)• Jelastic (jelastic.com)• KuberDock (cloudlinux.com)• Mesos (mesos.apache.org)• Docker Swarm (docker.com)• Deis (deis.io)
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
12factorhttp://12factor.net/
https://github.com/maestropanel/mpod
mpod