Menginstal Docker di Ubuntu sangat mudah! Siapapun, bahkan pemula, dapat menginstalnya dalam waktu 15 menit. Setelah menginstal Docker, saya perhatikan bahwa saya tidak dapat melakukan sebagian besar operasi Docker sebagai pengguna biasa. Saya harus menjalankan Docker sebagai pengguna "root" atau dengan izin "Sudo" setiap saat. Setiap kali saya mencoba menjalankan Docker sebagai pengguna non-root atau tanpa izin sudo, saya mendapatkan kesalahan berikut:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied
Misalnya, saya ingin memeriksa versi Docker sebagai pengguna biasa menggunakan perintah:
$ docker version
Dan, saya mendapatkan pesan kesalahan ini:
Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:25:46 2020 OS/Arch: linux/amd64 Experimental: false Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied
Tetapi ketika saya menjalankan perintah yang sama dengan izin sudo;
$ sudo docker version
Ini menampilkan seluruh detail versi Docker yang saat ini diinstal seperti yang ditunjukkan pada output di bawah ini.
Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:25:46 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.8 API version: 1.40 (minimum version 1.12) Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:24:19 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683
Setelah mencari di halaman dokumentasi Docker, saya menyadari bahwa daemon Docker mengikat ke soket Unix alih-alih port TCP secara default. Karena soket Unix dimiliki oleh root pengguna, daemon Docker hanya akan berjalan sebagai pengguna root. Oleh karena itu, pengguna biasa tidak dapat melakukan sebagian besar perintah Docker.
Jika Anda ingin menjalankan Docker sebagai pengguna non-root di Linux, Anda perlu melakukan langkah-langkah berikut. Saya menguji ini di server Ubuntu 18.04 dan berfungsi dengan baik! Ini juga harus bekerja pada distribusi Linux lainnya.
Jalankan Docker Sebagai Pengguna Non-root Di Linux
Untuk memperbaiki kesalahan izin Docker yang ditolak dan menggunakan Docker sebagai pengguna non-root, buat grup bernama "docker" dengan perintah berikut:
$ sudo groupadd docker
Selanjutnya, tambahkan pengguna Anda ke buruh pelabuhan grup:
$ sudo usermod -aG docker $USER
Setelah menambahkan pengguna ke grup buruh pelabuhan, keluar dan masuk kembali untuk menerapkan perubahan.
Atau, jalankan perintah berikut untuk menerapkan perubahan ke grup:
$ newgrp docker
Mulai sekarang, pengguna normal (non-root) dapat menggunakan Docker tanpa izin sudo.
Biarkan saya menjalankan perintah berikut sebagai pengguna biasa:
$ docker version
$ docker run hello-world
Contoh keluaran:
Lihat? Sekarang saya dapat menjalankan kedua perintah Docker itu tanpa izin sudo.
Untuk berjaga-jaga, Anda sudah menjalankan beberapa perintah Docker dengan izin 'sudo' sebelum menambahkan pengguna Anda ke grup Docker, Anda mungkin akan melihat kesalahan seperti di bawah ini.
WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied
Pesan kesalahan di atas menunjukkan bahwa ~/.docker/ your Anda direktori dibuat dengan izin yang salah karena perintah 'sudo'. Untuk memperbaiki masalah ini, ubah kepemilikan dan izin direktori ini menggunakan perintah berikut:
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R
Keluar dan masuk kembali agar ini berlaku.
Jika masih tidak memperbaiki masalah, Anda mungkin perlu menghapus ~/.docker/ Anda direktori. Ini akan dibuat ulang secara otomatis, tetapi Anda akan kehilangan semua pengaturan khusus, jika ada.
Semoga membantu.