Ada fase di mana saya tidak pernah mempermasalahkan sudo docker. Itu cuma satu kata tambahan. Di Linux, sudo sudah seperti refleks. Kita bahkan jarang mempertanyakan keberadaannya.
Masalahnya mulai terasa ketika Docker berubah dari sekadar alat coba-coba menjadi bagian dari rutinitas harian. Setiap hari mengetik perintah yang sama, menjalankan container yang sama, dan—cukup sering—lupa satu kata kecil di depannya. Perintah gagal, saya mengulanginya, lalu lanjut bekerja. Tidak ada drama, tapi gangguan kecil itu terus berulang.
Semakin lama, saya sadar bahwa yang terganggu bukan waktunya, tapi flow berpikir. Setiap error permission yang muncul bukan error “nyata”, tapi cukup untuk menarik fokus keluar dari konteks. Dan ketika kita sedang debugging atau membangun sesuatu yang kompleks, gangguan sekecil apa pun terasa mahal.
Saya tahu alasannya. Docker daemon berjalan sebagai root dan memiliki akses yang sangat luas ke sistem. Dari sisi keamanan, memaksa penggunaan sudo adalah keputusan yang masuk akal. Siapa pun yang bisa mengontrol Docker, secara tidak langsung punya kekuatan besar atas mesin tersebut.
Tapi di laptop pribadi—yang hanya saya gunakan sendiri—pembatasan ini mulai terasa seperti aturan yang dibuat untuk konteks berbeda. Di sinilah saya akhirnya berhenti mengeluh dan mulai mencari solusi yang resmi, bukan sekadar trik.
Ternyata Docker memang menyediakan mekanismenya. Solusinya bukan menghilangkan keamanan, tapi memindahkan kepercayaan ke level user, melalui grup bernama docker.
Secara teknis, yang perlu dilakukan hanyalah menambahkan user ke dalam grup tersebut. Di sistem Linux, grup ini biasanya sudah ada. Jika belum, grup bisa dibuat terlebih dahulu. Setelah itu, user ditambahkan ke grup docker dan session di-refresh dengan logout atau restart.
sudo usermod -aG docker username
Setelah login ulang, perintah Docker bisa dijalankan tanpa sudo.
docker ps
Tidak ada lagi error permission. Tidak ada lagi refleks mengulang perintah. Dan yang paling terasa: workflow terasa jauh lebih bersih.
Perubahan ini kelihatannya kecil, tapi dampaknya nyata. Command history jadi rapi, script lokal lebih konsisten, dan saya tidak lagi harus memikirkan konteks user setiap kali menjalankan Docker. Untuk development lokal, ini adalah kompromi yang sangat masuk akal.
Tentu saja, ini bukan solusi universal. User yang tergabung dalam grup docker pada dasarnya memiliki akses setara root melalui Docker. Di server production atau mesin yang digunakan bersama, saya justru memilih tetap menggunakan sudo. Rasa “tidak nyaman” itu berfungsi sebagai pengingat bahwa saya sedang bermain di wilayah sensitif.
Akhirnya saya sampai pada kesimpulan sederhana: menjalankan Docker tanpa sudo bukan soal malas mengetik, tapi soal mengenali konteks kerja. Di tempat yang tepat, ia meningkatkan fokus dan produktivitas. Di tempat yang salah, ia justru membuka risiko yang tidak perlu.
Masalahnya memang kecil. Tapi karena ia terjadi setiap hari, memperbaikinya adalah keputusan yang terasa sangat masuk akal.

Leave a comment