Dalam dunia pengembangan aplikasi modern, containerization menjadi solusi yang sangat populer untuk mengemas dan menjalankan aplikasi secara efisien. Docker memungkinkan kita menjalankan aplikasi dalam lingkungan yang ringan dan portabel, sementara Docker Swarm membantu mengelola banyak container dalam skala besar. Untuk mempermudah pengelolaan, ada Portainer yang menyediakan antarmuka grafis agar kita tidak selalu bergantung pada command line.
Artikel ini akan membahas apa itu Docker, bagaimana Docker Swarm bekerja, dan bagaimana Portainer dapat mempermudah pengelolaan container.
Apa Itu Docker?
Docker adalah platform open-source yang memungkinkan kita membuat, mengemas, dan menjalankan aplikasi dalam container. Container ini berisi semua dependensi yang dibutuhkan aplikasi agar bisa berjalan dengan konsisten di berbagai sistem operasi tanpa masalah kompatibilitas.
Salah satu alasan mengapa Docker begitu populer adalah kemampuannya untuk menghindari konflik antara dependensi. Dengan Docker, kita tidak perlu khawatir apakah aplikasi berjalan di Windows, Linux, atau macOS karena semua sudah dikemas dalam lingkungan yang terisolasi.
Menggunakan Docker juga jauh lebih ringan dibandingkan virtual machine (VM) tradisional. Jika VM membutuhkan sistem operasi terpisah untuk setiap instansinya, Docker hanya berbagi kernel sistem operasi yang sama, sehingga lebih hemat sumber daya dan lebih cepat dalam hal startup.
Docker Swarm: Manajemen Container dalam Skala Besar
Ketika aplikasi berkembang dan perlu dijalankan di banyak server, di sinilah Docker Swarm berperan. Docker Swarm adalah alat orkestrasi yang memungkinkan kita mengelola banyak container di beberapa server sekaligus. Dengan Swarm, kita bisa memastikan aplikasi tetap berjalan meskipun ada node yang gagal, serta mendistribusikan beban kerja dengan lebih efisien.
Docker Swarm bekerja dengan cara mengelompokkan beberapa server menjadi satu kesatuan yang disebut cluster. Dalam cluster ini, ada dua jenis node: Manager yang bertugas mengontrol seluruh cluster dan Worker yang menjalankan container.
Dengan Docker Swarm, kita bisa dengan mudah menskalakan aplikasi, menambahkan atau mengurangi jumlah container hanya dengan satu perintah. Jika satu node mengalami masalah, Swarm akan secara otomatis memindahkan beban kerja ke node lain yang tersedia.
Portainer: Mengelola Docker dengan GUI
Meskipun Docker dan Swarm sangat kuat, tidak semua orang nyaman bekerja hanya dengan command line. Di sinilah Portainer membantu. Portainer adalah alat berbasis web yang mempermudah pengelolaan container, image, network, dan volume dalam ekosistem Docker.
Dengan Portainer, kita bisa melihat daftar container yang berjalan, memulai atau menghentikan container, serta memantau sumber daya yang digunakan. Semua ini bisa dilakukan melalui antarmuka grafis tanpa perlu mengetik perintah panjang di terminal.
Untuk menginstal Portainer, kita hanya perlu menjalankan satu perintah Docker. Setelah itu, Portainer bisa diakses melalui browser dan langsung digunakan untuk mengelola seluruh ekosistem Docker kita.
Implementasi Docker, Swarm, dan Portainer
Sebagai contoh, kita bisa menjalankan aplikasi web sederhana menggunakan Docker. Kita mulai dengan membuat file docker-compose.yml untuk menjalankan Nginx dalam container.
version: "3"
services:
web:
image: nginx
ports:
- "8080:80"
Perintah berikut akan menjalankan container berdasarkan file tersebut:
docker-compose up -d
Sekarang, aplikasi bisa diakses melalui http://localhost:8080.
Jika ingin menjalankan aplikasi dalam cluster dengan Docker Swarm, kita bisa menginisialisasi Swarm dan menjalankan layanan dengan perintah berikut:
docker swarm init
docker stack deploy -c docker-compose.yml myapp
Dengan ini, Docker Swarm akan menangani distribusi container secara otomatis.
Untuk mempermudah pengelolaan, kita bisa menginstal Portainer dengan menjalankan:
docker run -d -p 9000:9000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer-ce
Setelah itu, Portainer bisa diakses melalui browser di http://localhost:9000, di mana kita bisa melihat daftar container, memonitor penggunaan sumber daya, serta mengelola sistem Docker tanpa perlu membuka terminal. Namun ketika pertama kali membuka portainer, kita akan diminta untuk membuat akun admin.

Setelah mengisi username dan password untuk akses ke portainer maka barulah kita dapat masuk kedalam portainer seperti gambar dibawah.

Menambahkan Node kedalam Docker Swarm
Pertama, kita harus memastikan bahwa satu server sudah menjadi Manager Node. Jika belum, jalankan perintah ini di server yang akan menjadi Manager Node:
docker swarm init --advertise-addr <IP_MANAGER>
Gantilah
<IP_MANAGER>dengan alamat IP dari server Manager.
Jika perintah berhasil, terminal akan menampilkan perintah yang harus dijalankan di node lain untuk bergabung sebagai worker. Contohnya:
docker swarm join --token SWMTKN-1-abcdefg1234567890xyz <IP_MANAGER>:2377
Sekarang, di server lain yang ingin dijadikan Worker Node, jalankan perintah berikut:
docker swarm join --token <TOKEN> <IP_MANAGER>:2377
<TOKEN>adalah token yang diperoleh dari output perintah sebelumnya.<IP_MANAGER>:2377adalah IP dan port dari Manager Node.
Setelah menjalankan perintah ini, worker node akan bergabung ke dalam cluster.
Untuk memastikan bahwa worker node telah berhasil ditambahkan, kembali ke Manager Node dan jalankan:
docker node ls
Outputnya akan menampilkan daftar node dalam cluster, misalnya:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
u1h3sdfq82g1y5l manager-1 Ready Active Leader
htr8sgsjd8c7h2 worker-1 Ready Active
98jsdg9sa7d6hj worker-2 Ready Active
Di sini, kita bisa melihat bahwa worker-1 dan worker-2 sudah berhasil bergabung sebagai worker node.
Kesimpulan
Docker, Docker Swarm, dan Portainer adalah kombinasi yang sangat powerful untuk membangun, mengelola, dan menskalakan aplikasi berbasis container. Docker memungkinkan kita menjalankan aplikasi dalam lingkungan yang terisolasi, Docker Swarm memudahkan pengelolaan banyak container dalam skala besar, sementara Portainer memberikan kemudahan dalam memantau dan mengelola sistem melalui antarmuka yang ramah pengguna.
Jika kamu baru mulai dengan containerization, cobalah menggunakan Docker terlebih dahulu. Setelah memahami konsep dasarnya, eksplorasi Docker Swarm untuk manajemen container yang lebih kompleks, dan gunakan Portainer untuk membuat hidup lebih mudah! 🚀

Leave a comment