[Ubuntu] Pengaturan dan catatan untuk menjalankan buruh pelabuhan tanpa perintah sudo

2019 10 年 月 日 3

Catatan tentang cara menjalankan buruh pelabuhan tanpa sudo saat menggunakan buruh pelabuhan di Ubuntu.

peluang

Setelah menginstal buruh pelabuhan, sepertisudoSaya mendapat kesalahan saat memeriksa operasi tanpa perintah.

# Jalankan dari terminal Ubuntu docker jalankan hello-world 

buruh pelabuhan: Mendapat izin ditolak saat mencoba terhubung ke soket daemon Docker di unix:///var/run/docker.sock: Posting http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: panggil unix /var/run/docker.sock: terhubung: izin ditolak Lihat 'docker run --help'.

Tampaknya akses ke daemon buruh pelabuhan ditolak. Saya mengetik sudo docker run hello-world dan berhasil.

Alasan kesalahan adalah sebagai berikut.

Docker berkomunikasi dengan daemon (dockerd) yang berjalan dengan hak akses root melalui soket unix atau tcp/ip, tetapi untuk mengakses dockerd Anda harus menjadi anggota grup docker atau memiliki hak akses root.

Pahami bahaya menambahkan pengguna ke grup buruh pelabuhan di Docker

Dengan menambahkan perintah sudo, menjadi mungkin untuk mengeksekusi perintah yang tidak dapat dijalankan tanpa hak akses root (seperti menghubungkan ke daemon) sebagai pengguna umum.Tetapi menambahkan sudo setiap saat itu menyebalkan.

Penanggulangan dan pencegahan

Salah satu cara untuk menjalankan tanpa sudo adalah menjadikan pengguna milik grup dokcer (Anda dapat menemukan banyak contoh dengan googling), tetapi tampaknya ada masalah keamanan.

Referensi: Risiko saat memberikan hak istimewa yang mirip dengan root di grup buruh pelabuhan (dokumen resmi)

Jika Anda ingin menggunakan buruh pelabuhan tanpa sudo, newgrp Dikatakan bahwa lebih baik untuk sementara menjadi anggota grup dengan atau ruang nama pengguna.

sudo groupadd docker # di mana $USER adalah nama pengguna Anda sudo usermod -aG docker $USER newgrp docker docker jalankan hello-world 

Halo dari Docker!
Pesan ini menunjukkan bahwa penginstalan Anda tampaknya berfungsi dengan benar.

Untuk menghasilkan pesan ini, Docker melakukan langkah-langkah berikut:

1. Klien Docker menghubungi daemon Docker.
2. Daemon Docker menarik gambar "hello-world" dari Docker Hub.
(amd64)
3. Daemon Docker membuat wadah baru dari image yang menjalankan
dapat dieksekusi yang menghasilkan keluaran yang sedang Anda baca.
4. Daemon Docker mengalirkan keluaran itu ke klien Docker, yang mengirimkannya
ke terminal Anda.

Untuk mencoba sesuatu yang lebih ambisius, Anda dapat menjalankan wadah Ubuntu dengan:
$ docker run -itu ubuntu bash

Bagikan gambar, otomatiskan alur kerja, dan lainnya dengan ID Docker gratis: https://hub.docker.com/

Untuk lebih banyak contoh dan ide, kunjungi:
https://docs.docker.com/get-started/