Lewati ke isi

Server & Infrastruktur

Portainer untuk Mengelola Docker Lewat Browser

Kenali Portainer CE, cara memasangnya di VPS, apa yang bisa dan tidak bisa dilakukan, serta cara mengamankan akses panelnya.

Terbit 5 menit baca

Jawaban singkat

Portainer adalah antarmuka web untuk mengelola container, image, volume, dan stack Docker tanpa mengetik perintah. Versi CE gratis dipasang sebagai satu container, tapi aksesnya setara root sehingga panel wajib dibatasi lewat firewall, VPN, atau SSH tunnel.

Daftar isi
  1. Apa itu Portainer?
  2. Memasang Portainer CE di VPS
  3. Pekerjaan sehari-hari yang jadi lebih mudah
  4. Risiko yang sering diremehkan
  5. Kapan Portainer bukan pilihan yang tepat?

Bayangkan sebuah VPS dengan delapan container: website, database, n8n, dan beberapa alat internal. Setiap kali ada yang macet, kamu harus login SSH, mengingat nama container, membaca log dengan docker logs, lalu me-restart dengan perintah yang sama berulang kali. Rekan satu tim yang tidak terbiasa dengan terminal pun tidak bisa membantu.

Portainer menjawab situasi seperti itu. Ia menampilkan semua container dalam satu halaman web, lengkap dengan status, log, pemakaian resource, dan tombol untuk menyalakan atau menghentikannya. Bagi tim kecil, ini sering menjadi jembatan antara "semua orang bergantung pada satu admin" dan "semua orang bisa mengecek sendiri".

Apa itu Portainer?

Portainer adalah aplikasi manajemen container berbasis web. Ia bisa mengelola Docker standalone, Docker Swarm, dan Kubernetes. Ada dua edisi: Community Edition (CE) yang open source dan gratis, serta Business Edition (BE) dengan fitur tambahan untuk organisasi, seperti kontrol akses yang lebih rinci. Artikel ini membahas CE, yang sudah cukup untuk satu atau beberapa server.

Portainer sendiri berjalan sebagai container. Ia terhubung ke Docker lewat socket /var/run/docker.sock, lalu menerjemahkan klik di browser menjadi perintah Docker API. Artinya, apa pun yang bisa dilakukan dengan perintah docker, sebagian besar juga bisa dilakukan dari Portainer.

Kalau konsep container masih baru bagimu, mulai dulu dari apa itu Docker.

Memasang Portainer CE di VPS

Dokumentasi resmi Portainer memakai dua perintah. Pertama, buat volume untuk menyimpan data Portainer:

docker volume create portainer_data

Kedua, jalankan container-nya. Versi di bawah ini sedikit diubah dari dokumentasi: port diikat ke 127.0.0.1 supaya panel tidak langsung terbuka ke internet, dan port 8000 dihilangkan karena hanya diperlukan untuk Edge Agent.

docker run -d -p 127.0.0.1:9443:9443 --name portainer --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data portainer/portainer-ce:lts

Tag lts mengikuti rilis jangka panjang yang direkomendasikan dokumentasi. Port 9443 melayani antarmuka web lewat HTTPS dengan sertifikat self-signed, sehingga browser akan menampilkan peringatan saat pertama dibuka. Port 9000 (HTTP lama) tidak dibuka secara bawaan.

Karena port hanya mendengarkan localhost, buka panel dari laptop lewat SSH tunnel:

ssh -N -L 9443:127.0.0.1:9443 user@ip-server

Lalu kunjungi https://localhost:9443. Segera buat user admin dengan password panjang. Portainer sengaja menghentikan dirinya bila admin tidak dibuat dalam beberapa menit setelah start, untuk mencegah orang lain mengambil alih instalasi yang baru. Bila itu terjadi, cukup restart container lalu ulangi.

Pembaruan Portainer mengikuti pola container biasa: hentikan dan hapus container lama, tarik image baru, lalu jalankan perintah yang sama. Datanya tetap aman di volume portainer_data, seperti dijelaskan di update container Docker tanpa kehilangan data.

Pekerjaan sehari-hari yang jadi lebih mudah

Setelah masuk, Portainer menampilkan "environment" lokal, yaitu Docker di server tempat ia berjalan. Dari situ, pekerjaan rutin bisa dilakukan dengan klik.

PekerjaanLewat terminalLewat Portainer
Melihat semua container dan statusnyadocker ps -aDaftar Containers dengan warna status
Membaca logdocker logs -f namaTombol Logs, bisa dicari dan difilter
Masuk ke shell containerdocker exec -it nama shTombol Console di browser
Melihat pemakaian CPU dan RAMdocker statsTombol Stats per container
Menjalankan aplikasi multi-containerdocker compose up -dMenu Stacks, tempel isi compose file
Membersihkan image tak terpakaidocker image pruneMenu Images, pilih lalu hapus

Menu Stacks paling sering dipakai. Kamu menempelkan isi compose file, mengisi variabel lingkungan, lalu menekan Deploy. Stack juga bisa diambil dari repositori Git, sehingga konfigurasi tetap tersimpan di luar server.

Portainer juga bisa mengelola beberapa server sekaligus dengan memasang Portainer Agent di server lain dan menambahkannya sebagai environment baru. Dengan begitu, satu panel cukup untuk memantau server produksi, staging, dan server uji coba tanpa berpindah-pindah sesi SSH.

Risiko yang sering diremehkan

Akses ke socket Docker setara dengan akses root di server. Siapa pun yang berhasil login ke Portainer bisa membuat container dengan mount ke seluruh filesystem host. Karena itu, panel Portainer harus diperlakukan seperti pintu SSH, bukan seperti dashboard biasa.

Langkah minimum yang masuk akal: jangan publish port 9443 ke semua alamat, akses lewat SSH tunnel atau VPN, gunakan password panjang untuk setiap user, dan hapus user yang sudah tidak dipakai. Perlu diingat juga bahwa port yang di-publish Docker bisa melewati aturan UFW, sehingga membuka port lalu "menutupnya" di UFW belum tentu efektif. Penjelasan dan solusinya ada di mengamankan Docker agar port tidak bocor.

Bila panel memang harus diakses lewat domain, letakkan di belakang reverse proxy dengan HTTPS dan pembatasan IP atau autentikasi tambahan.

Kapan Portainer bukan pilihan yang tepat?

Portainer adalah alat manajemen, bukan sistem deploy otomatis. Ia tidak membangun image dari kode aplikasi setiap kali kamu push ke Git, tidak mengatur domain dan SSL untuk setiap aplikasi secara otomatis, dan tidak menggantikan dokumentasi konfigurasi.

Kalau yang kamu cari adalah pengalaman seperti platform hosting aplikasi (push kode, langsung tayang dengan domain sendiri), alat PaaS di VPS lebih cocok. Pilihannya dibandingkan di Coolify, Dokploy, atau CapRover. Untuk tim yang sudah nyaman dengan compose file di Git dan terminal, Portainer pun tetap berguna sebagai jendela pemantauan, bukan alat utama.

Hal lain yang perlu diingat: stack yang dibuat lewat editor web disimpan di data Portainer. Kalau volume portainer_data hilang, definisi stack ikut hilang. Simpan salinan compose file di repositori atau backup volume itu secara berkala.

Ringkasnya, Portainer membuat Docker lebih mudah dipantau dan dikelola, terutama untuk tim kecil dengan anggota yang tidak terbiasa dengan terminal. Pasang dengan port terbatas, akses lewat tunnel atau VPN, dan simpan compose file di luar Portainer, maka ia menjadi alat bantu yang aman alih-alih celah baru di server.

Sumber & referensi

Baca juga