GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menjalankan Docker Sebagai Pengguna Non-root Di Linux

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.


Docker
  1. Bagaimana Cara Menjalankan Program Di Dalam Wadah Docker?

  2. Cara Menjalankan MySQL Dalam Wadah Docker

  3. Jalankan Docker sebagai pengguna non-root

  1. Cara memeriksa versi Redhat

  2. Cara menghapus penggunaan non-root dengan UID 0 di Linux

  3. Bagaimana cara menambahkan pengguna ke wadah Docker?

  1. Cara Menjalankan Perintah di Running Docker Container

  2. Bagaimana menjalankan rsyslog sebagai pengguna non-root di CentOS/RHEL 7

  3. Android - Bagaimana cara me-root Samsung S6 menggunakan Linux?