Setup High Availability Web Service dengan Docker HAProxy


Setup High Availability Web Service - Hallo sobat opreker, pada artikel sebelumnya www.dimasrio.com sudah menjelaskan bagimana cara membuat web service menggunakan docker. Pada kesempatan kali ini, saya akan mencoba sedikit mengembangkan artikel sebelumnya yaitu dengan membuat high availability web service dengan haproxy. Oke sobat, berikut yang sobat harus persiapkan.
  1. Download (pull) docker images nginx dan haproxy.
    docker pull nginx
    Untuk download images haproxy caranya sedikit berbeda. Karena images haproxy memerlukan file haproxy.cfg maka kita perlu membuat Dockerfile saat pull images haproxy.
    touch haproxy.cfg
    touch Dockerfile
    Tambahkan perintah berikut pada Dockerfile.
    FROM haproxy:1.7
    COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
    Selanjutnya build images haproxy.
    docker build -t haproxy .
    Output :


  2. Install docker compose.
Jika kedua tahap di atas sudah selesai dilakukan maka lanjut pada konfigurasi.

Konfigurasi High Availability Web Service

Step 1 - Buat direktory untuk docker compose.
mkdir /docker
touch /docker/docker-compose.yml
Tambahkan perintah berikut pada docker-compose.yml.
version: '2'

services:

        nginx_01:
          container_name: web01
          image: nginx
          restart: always
          volumes:
               - ./nginx/www01:/usr/share/nginx/html/:rw

        nginx_02:
          container_name: web02
          image: nginx
          restart: always
          volumes:
               - ./nginx/www02:/usr/share/nginx/html/:rw
              
        load_balance:
          container_name: load_balance
          image: haproxy
          restart: always
          ports:
               - 8082:8082
               - 8080:80
          links:
               - nginx_01
               - nginx_02
          volumes:
               - ./haproxy/:/usr/local/etc/haproxy/:rw
Step 2 - Buat direktory untuk konfigurasi haproxy.
mkdir /docker/haproxy
touch /docker/haproxy/haproxy.cfg
Tambahkan perintah berikut pada file /docker/haproxy/haproxy.cfg.
global
    log         127.0.0.1 local2 info
    maxconn     512
    daemon

defaults
    mode http
    log global
    option httplog
    timeout connect 10s
    timeout client 30s
    timeout server  30s

frontend http-in
    bind *:80
    default_backend http_backend
    option forwardfor

backend http_backend
    balance roundrobin
    server www01 web01:80 check
    server www02 web02:80 check
   
frontend stats
    bind *:8082
    stats enable
    stats auth admin:admin
    stats hide-version
    stats show-node
    stats refresh 15s
    stats uri /stats
Step 3 - Jalankan docker compose.
docker-compose up -d
Output :

Sampai di sini sobat sudah bisa menambahkan script html, sebagai contoh buat script index.html sederhana pada folder www01 dan www02 pada direktory /docker/nginx/

Output:


Demikian tutorial docker kali ini mengenai simple setup high availability web service dengan docker haproxy. Semoga bermanfaat bagi kita semua dan selamat mencoba..!!!

Cara menggunakan Docker Compose


Docker Compose adalah sebuah tools yang digunakan untuk mendefinisikan, menggabungkan dan mengkonfigurasi berberapa docker container menjadi satu kesatuan application's services. Karena sebelumnya kita sudah belajar dan mengenal beberapa command docker maka kali ini dimasrio.com akan menjelaskan bagimana cara menggunakan docker compose untuk setup suatu service application's.

Step 1 - Install docker
Step 2 - Install docker compose
yum -y install python-pip
pip install docker-compose
Step 3 - Configure docker compose

Pada contoh kali ini saya akan mengambil contoh membuat suatu service http menggunakan nginx

Download docker image nginx.
docker pull nginx
Buat sebuah directory dan docker compose file.
mkdir /docker
mkdir /docker/nginx
cd /docker/nginx/

touch docker-compose.yml
Edit isi file docker-compose.yml seperti di bawah ini.
version: '2'

services:

 nginx:
  container_name: web01
  image: nginx
  restart: always
  ports:
   - "8081:80"
  volumes:
  - ./www:/usr/share/nginx/html:rw
Perintah diatas akan membuat sebuah container dengan nama web01 dengan listen port 8081 yang di nat ke port 80 (service nginx). Sedangkan volumes digunakan untuk mounting direktory /usr/share/nginx/html pada conteiner ke direktory /docker/nginx/www host. Sehingga jika kita ingin membuat halaman index.html kita hanya perlu meletakannya pada direktory www.

Setelah selesai jalankan docker-compose sebagai daemon.
docker-compose up -d
Output :

Sampai disini sobat sudah bisa membuat halaman web. Sebagai contoh saya sudah membuat index.html yang saya letakan pada direktory www.

Output :


Demikian tutorial docker compose singkat saya saya kali ini. Semoga bermanfaat bagi kita semua dan selamat mencoba.!!!

Cara menggunakan docker di CentOS 7

Cara menggunakan docker di CentOS 7 - Hallo sobat opreker, pada artikel sebelumnya www.dimasrio.com sudah menjelaskan bagaimana cara untuk install docker di centos 7. Lalu bagimana cara kita menggunakan docker? seperti yang sudah saya sebutkan di artikel sebelumnya bahwa docker berbasis container oleh karena itu kita membutuhkan sebuah image untuk membuat virtualisasi. 

Docker Workflow


Untuk langkah pertama yang sobat harus lakukan adalah download docker image. Dimana kita mendapatkan docker image? docker sendiri sudah mempunyai repository untuk image yaitu docker hub, jadi kita hanya perlu koneksi internet dan sudah bisa terhubung ke docker hub.

Pada contoh kali ini saya akan mencoba membuat container ubuntu pada docker.
docker search ubuntu
Output :


Download docker image dengan perintah berikut.
docker pull ubuntu
Output :

Jalankan docker container.
docker run -it ubuntu
Output :

Options "-it" digunakan untuk menjalankan docker dengan mode interactive dari image. Sehingga ketika di run kita akan masuk pada shell container. Yang perlu kita ingat adalah id container yaitu 80b58a61e0d7 karena id tersebut yang kita gunakan jika ingin kita ingin build container baru dari container base.


Sebagai contoh saya akan install web server pada container ubuntu yang nantinya saya akan jadikan sebuah image baru dengan nama ubuntu-apache2.
apt-get update
apt-get install apache2
service apache2 restart
Setelah sobat melakukan install service http pada docker selanjutnya lakukan commit untuk membuat atau menyimpan konfigurasi  ke docker images. Perintah commit hanya bisa dijalankan pada os guest, artinya sobat harus logout terlebih dahulu shell container.
docker commit <id container> <repository>/<nama images>
Contoh :
 docker commit 80b58a61e0d7 dimasrio.com/ubuntu-apache2
Output :

Setelah images ubuntu apache2 di commit, Sobat sudah bisa menjalankan images nya sebagai container. Sebagai contoh disini saya akan mencoba membuat 2 buah container dengan nama web1 dan web2.
docker run -d -it --name web1 -p 8081:80 dimasrio.com/ubuntu-apache2
docker run -d -it --name web2 -p 8082:80 dimasrio.com/ubuntu-apache2
Selanjutnya jalankan docker container dengan perintah berikut.
docker start web1
docker start web2
Pastikan pada docker ps , container web1 dan web2 sudah running.

Output:


Nyalakan service apache2 pada masing-masing container.
docker exec web1 service apache2 start
docker exec web2 service apache2 start
Pastikan service apache sudah running pada container.


Sampai disini sobat sudah mempunyai 2 buah service apache.  Sekarang silahkan coba untuk mengakses localhost:8081 atau localhost:8082 pada browser.

Output:


Untuk mempermudah kita setup images pada docker, sobat bisa mencarinya langsung pada docker hub. Sobat bisa mencari image apa pun disana, tanpa harus membuat images terlebih dahulu.

Demikian tutorial docker indonesia kali ini, semoga bermanfaat bagi kita semua dan selamat mencoba.!!!

Youtube

Bisnis Online