Cara Mengatasi Error Docker “Got permission denied while trying to connect to the Docker daemon socket” [Panduan Terbaru 2026]
Salah satu error yang paling sering ditemui saat mulai menggunakan Docker adalah “Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock”. Artikel ini menjelaskan secara detail penyebab dan solusi spesifik untuk error ini, yang telah diperbarui untuk lingkungan terbaru tahun 2026. Ini adalah bacaan wajib bagi semua pengguna yang menjalankan Docker di Linux (Ubuntu, CentOS, Debian, dll.).
Apa Error Ini? Gejala yang Akan Anda Alami
Setelah menginstal Docker atau saat menjalankan perintah docker di server Linux, Anda mungkin akan melihat pesan error berikut:
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied.
Error ini bisa terjadi pada hampir semua perintah Docker, termasuk docker ps, docker run, dan docker-compose up. Secara spesifik, Anda mungkin mengalami gejala-gejala berikut:
docker run hello-worldgagal: Kasus pertama yang paling sering ditemui saat memverifikasi instalasi Dockerdocker pstidak menampilkan container: Tidak bisa melihat container yang sedang berjalan karena error permissiondocker-compose uptidak bisa dimulai: Aplikasi multi-container gagal diluncurkan- Pipeline CI/CD gagal: Perintah Docker di Jenkins, GitHub Actions, GitLab CI, dll. terhenti karena error permission
- Ekstensi Dev Containers VS Code tidak bisa terhubung: Tidak bisa terhubung ke Docker di lingkungan pengembangan jarak jauh
Ketika error ini terjadi, semua fungsionalitas Docker menjadi tidak bisa digunakan, menghentikan pekerjaan pengembangan Anda sepenuhnya. Ini sangat membingungkan terutama bagi pengguna yang baru mengenal Docker.
Penyebab Error Ini
Penyebab 1: Pengguna Saat Ini Tidak Ada di Grup Docker
Ini adalah penyebab paling umum. Docker daemon berkomunikasi melalui Unix socket (/var/run/docker.sock) secara default, dan socket ini dimiliki oleh pengguna root (administrator). Pengguna biasa perlu masuk ke grup docker untuk menjalankan perintah Docker. Hanya menginstal Docker saja tidak otomatis menambahkan pengguna Anda ke grup ini, sehingga menyebabkan error permission.
# Periksa permission socket
ls -la /var/run/docker.sock
# Contoh output: srw-rw---- 1 root docker 0 Feb 12 10:00 /var/run/docker.sock
Penyebab 2: Belum Logout/Login Setelah Perubahan Grup
Setelah menjalankan sudo usermod -aG docker $USER untuk menambahkan pengguna ke grup docker, Anda belum logout dan login kembali. Di Linux, perubahan keanggotaan grup tidak berlaku sampai Anda memulai sesi baru (login). Ini adalah kelalaian yang sangat umum, dan pertanyaan seperti “saya sudah menjalankan perintahnya tapi masih tidak bisa” sering muncul di Stack Overflow dan Reddit.
Penyebab 3: Docker Daemon Tidak Berjalan
Error serupa bisa terjadi ketika layanan Docker itu sendiri berhenti. Ini terjadi ketika Docker tidak dikonfigurasi untuk dimulai otomatis setelah server di-reboot, atau ketika instalasi Docker tidak lengkap.
# Periksa status layanan Docker
sudo systemctl status docker
Penyebab 4: Permission /var/run/docker.sock Telah Diubah Secara Tidak Benar
Ini terjadi ketika permission file socket diubah secara manual, atau ketika tool keamanan mereset permission-nya. Socket seharusnya srw-rw---- dengan kepemilikan root:docker; jika permission-nya berbeda, koneksi normal akan gagal.
Penyebab 5: Pembatasan Akses SELinux atau AppArmor
Pada distribusi Linux yang diperkuat keamanannya (RHEL, CentOS, Fedora, dll.), SELinux mungkin memblokir akses ke socket Docker. Demikian juga, pada Ubuntu dan sistem serupa, AppArmor bisa menjadi penyebabnya.
Solusi 1: Tambahkan Pengguna Anda ke Grup Docker (Direkomendasikan)
Ini adalah solusi paling aman dan paling direkomendasikan. Ini juga merupakan pendekatan yang direkomendasikan dalam dokumentasi resmi Docker.
Langkah 1: Periksa Apakah Grup Docker Ada
Pertama, verifikasi bahwa grup docker ada di sistem Anda. Biasanya grup ini dibuat secara otomatis saat instalasi Docker, tapi sebaiknya diperiksa.
# Periksa apakah grup docker ada
cat /etc/group | grep docker
Jika grup tidak ada, buat dengan perintah berikut:
# Buat grup docker
sudo groupadd docker
Langkah 2: Tambahkan Pengguna Saat Ini ke Grup Docker
Gunakan perintah berikut untuk menambahkan pengguna yang sedang login ke grup docker:
# Tambahkan pengguna saat ini ke grup docker
sudo usermod -aG docker $USER
Penjelasan perintah:
– usermod: Perintah untuk memodifikasi akun pengguna
– -a: Mode append (tidak menghapus dari grup yang sudah ada)
– -G docker: Menentukan grup docker
– $USER: Secara otomatis diisi dengan nama pengguna login saat ini
Untuk menambahkan pengguna tertentu, ganti $USER dengan nama pengguna:
# Contoh: Tambahkan pengguna tertentu
sudo usermod -aG docker namapengguna
Langkah 3: Terapkan Perubahan Grup
Metode A: Logout & login kembali (paling andal)
# Untuk koneksi SSH
exit
# Kemudian hubungkan kembali via SSH
# Untuk lingkungan desktop
# Logout dan login kembali
Metode B: Gunakan newgrp untuk efek langsung (hanya terminal saat ini)
# Aktifkan grup docker langsung di sesi shell saat ini
newgrp docker
Metode ini hanya berlaku untuk sesi terminal saat ini. Saat membuka terminal baru, Anda perlu logout dan login kembali.
Langkah 4: Verifikasi Konfigurasi
# Periksa apakah Anda termasuk dalam grup docker
groups
# Tes apakah Docker berjalan dengan benar
docker run hello-world
Jika Anda melihat pesan Hello from Docker!, konfigurasi sudah selesai dengan benar.
Catatan Penting
- Melupakan opsi
-a(append) akan menyebabkan pengguna hanya masuk ke grup docker “saja”, menghapusnya dari semua grup lain. Selalu gunakan-aGbersamaan - Keanggotaan grup docker memberikan hak istimewa setara root kepada pengguna tersebut. Hanya tambahkan pengguna yang terpercaya
- Di lingkungan WSL2 (Windows Subsystem for Linux), restart WSL (
wsl --shutdown) mungkin diperlukan
Solusi 2: Gunakan sudo dengan Perintah Docker
Ini adalah solusi untuk lingkungan di mana Anda tidak bisa mengubah pengaturan grup, atau ketika Anda perlu menggunakan Docker sementara.
Cukup tambahkan sudo di depan semua perintah Docker untuk menjalankannya dengan hak istimewa root:
# Jalankan perintah Docker dengan sudo
sudo docker run hello-world
sudo docker ps
sudo docker-compose up -d
Metode ini langsung bisa digunakan tetapi memiliki kelemahan berikut:
- Harus mengetik
sudosetiap kali - Membuat eksekusi dalam Docker Compose dan script menjadi rumit
sudomungkin tidak tersedia di pipeline CI/CD- Variabel lingkungan dan pengaturan konteks Docker menggunakan milik pengguna
root
Untuk penggunaan jangka panjang, sangat direkomendasikan untuk menambahkan pengguna ke grup docker (Solusi 1).
Untuk penggunaan Docker Compose:
# Docker Compose
sudo docker compose up -d
# Docker Compose lama (v1)
sudo docker-compose up -d
Solusi 3: Gunakan Mode Rootless Docker (Lanjutan)
Mode Rootless, yang didukung secara resmi sejak Docker 20.10, menjalankan daemon Docker itu sendiri dengan hak istimewa pengguna biasa. Pada tahun 2026, Docker Engine 27.x telah lebih meningkatkan stabilitas, menjadikannya pendekatan yang direkomendasikan untuk lingkungan produksi yang mengutamakan keamanan.
Keuntungan Mode Rootless
- Sama sekali tidak memerlukan hak istimewa root
- Risiko keamanan berkurang secara signifikan
- Risiko kompromi host dari dalam container lebih rendah
Langkah Instalasi
Pertama, instal paket dependensi yang diperlukan:
# Ubuntu/Debian
sudo apt-get install -y uidmap dbus-user-session
# CentOS/RHEL
sudo yum install -y shadow-utils fuse-overlayfs
Selanjutnya, jalankan script setup mode Rootless:
# Hentikan Docker yang ada (rootful)
sudo systemctl disable --now docker.service docker.socket
# Instal mode Rootless
dockerd-rootless-setuptool.sh install
Atur variabel lingkungan:
# Tambahkan ke ~/.bashrc atau ~/.zshrc
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
# Terapkan pengaturan
source ~/.bashrc
# Verifikasi berfungsi
docker run hello-world
Catatan Penting
- Mode Rootless memiliki beberapa keterbatasan (mengikat port istimewa 80/443, driver penyimpanan tertentu, dll.)
- Image dan volume yang dibuat dengan hak istimewa root tidak bisa digunakan secara langsung
- Konfigurasi jaringan mungkin berbeda dari mode standar
Cara Mencegah Error Ini
Lakukan langkah-langkah pencegahan berikut untuk menghindari error permission Docker.
1. Konfigurasi Pengaturan Grup Segera Setelah Instalasi Docker
Selesaikan penambahan grup docker sebelum menjalankan perintah pertama setelah menginstal Docker. Sertakan ini dalam dokumentasi setup atau script Anda untuk setup yang efisien setiap kali.
# Contoh script setup post-instalasi
#!/bin/bash
sudo groupadd docker 2>/dev/null
sudo usermod -aG docker $USER
echo "Silakan logout dan login kembali"
2. Otomatisasi dengan Ansible atau Shell Script
Saat mengotomatisasi pengembangan tim atau pembangunan server, sertakan instalasi Docker dan konfigurasi grup dalam script otomatisasi Anda.
3. Verifikasi Pengaturan Permission Pipeline CI/CD
Untuk GitHub Actions, GitLab CI, Jenkins, dll., verifikasi bahwa permission akses socket Docker telah dikonfigurasi dengan benar. Banyak platform CI/CD memerlukan pengaturan khusus untuk penggunaan Docker.
4. Periksa Status Layanan Docker Secara Berkala
# Aktifkan auto-start Docker
sudo systemctl enable docker
# Periksa status layanan Docker
sudo systemctl status docker
5. Jangan Pernah Menggunakan chmod 666
Anda mungkin menemukan chmod 666 /var/run/docker.sock disarankan sebagai “solusi” di internet, tetapi ini sangat berbahaya dari sudut pandang keamanan. Ini memberikan semua pengguna akses ke daemon Docker, yang secara efektif memberikan hak istimewa root kepada setiap pengguna. Jangan pernah gunakan ini di lingkungan produksi.
Ringkasan
Error Docker “Got permission denied while trying to connect to the Docker daemon socket” adalah error yang sangat umum yang ditemui oleh hampir semua pengguna Linux yang mulai menggunakan Docker. Namun, dengan pemahaman yang tepat tentang penyebab dan solusinya, error ini bisa diselesaikan dalam hitungan menit.
Poin-poin Kunci:
– Direkomendasikan: Tambahkan pengguna ke grup docker dengan sudo usermod -aG docker $USER lalu logout & login kembali
– Sementara: Gunakan sudo docker untuk eksekusi perintah langsung
– Fokus keamanan: Pertimbangkan mode Rootless Docker
Jika masalah tetap ada, periksa hal-hal berikut:
1. Apakah layanan Docker berjalan? (sudo systemctl status docker)
2. Apakah permission file socket benar? (ls -la /var/run/docker.sock)
3. Apakah pengaturan SELinux/AppArmor mengganggu?
Jika masih tidak bisa diselesaikan, kami sarankan untuk bertanya di Docker Community Forums atau Stack Overflow dengan detail lingkungan Anda (OS, versi Docker, pesan error lengkap).
Referensi
- Dokumentasi Resmi Docker: Langkah post-instalasi Linux
- Dokumentasi Resmi Docker: Mode Rootless
- DigitalOcean: Cara memperbaiki error permission denied Docker
- Baeldung: Permission Denied Saat Mencoba Terhubung ke Docker Daemon Socket
- Forum Komunitas Docker: Permission denied saat mencoba terhubung
- phoenixNAP: Cara Memperbaiki Error Permission Denied Docker
- OneUptime: Cara Memperbaiki Error Permission Denied Docker (2026)

コメント