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

Jalankan Docker sebagai pengguna non-root

Wadah Docker secara default dijalankan dengan hak akses root dan begitu juga aplikasi yang berjalan di dalam wadah. Ini adalah perhatian utama lainnya dari perspektif keamanan karena peretas dapat memperoleh akses root ke host Docker dengan meretas aplikasi yang berjalan di dalam wadah.

Metode 1 – Tambahkan pengguna ke grup Docker

1. Untuk menjalankan Docker sebagai pengguna non-root, Anda harus menambahkan pengguna Anda ke grup buruh pelabuhan.

2. Buat grup buruh pelabuhan jika tidak ada:

$ sudo groupadd docker

3. Tambahkan pengguna Anda ke grup buruh pelabuhan:

$ sudo usermod -aG docker [non-root user]

4. Log out dan login kembali agar keanggotaan grup Anda dievaluasi kembali.

Metode 2 – Menggunakan Dockerfile (instruksi USER)

Docker menyediakan solusi sederhana namun kuat untuk mengubah hak istimewa container menjadi pengguna non-root dan dengan demikian menggagalkan akses root berbahaya ke host Docker. Perubahan pada pengguna non-root ini dapat dilakukan dengan menggunakan -u atau –pengguna opsi subperintah docker run atau USER instruksi di Dockerfile.

1. Edit Dockerfile yang membuat pengguna hak istimewa non-root dan ubah pengguna root default menjadi pengguna hak istimewa non-root yang baru dibuat, seperti yang ditunjukkan di sini:

##########################################
# Dockerfile to change from root to 
# non-root privilege
###########################################
# Base image is CentOS 7
FROM Centos:7
# Add a new user "john" with user id 8877
RUN useradd -u 8877 john
# Change to non-root privilege
USER john

2. Lanjutkan untuk membangun image Docker menggunakan subperintah “docker build”, seperti yang digambarkan di sini:

$ sudo docker build -t nonrootimage .

3. Terakhir, mari verifikasi pengguna wadah kita saat ini menggunakan perintah id di subperintah docker run:

$ sudo docker run --rm nonrootimage id
uid=8877(john) gid=8877(john) groups=8877(john)

Jelas, pengguna, grup, dan grup penampung sekarang diubah menjadi pengguna non-root.


Docker
  1. Cara Menjalankan Nginx dalam Wadah Docker:Panduan Langkah demi Langkah

  2. Apakah Ini Praktik yang Baik Untuk Menjalankan Daemon Di Bawah Akun Pengguna Non-root?

  3. Cara Menjalankan MySQL Dalam Wadah Docker

  1. Kali Default Pengguna Non-Root

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

  3. Cara menggunakan Sudo untuk mengizinkan pengguna non-root menjalankan perintah tertentu

  1. Haruskah Anda Menjalankan Database di Docker?

  2. Cara Menjalankan Perintah di Running Docker Container

  3. Bagaimana cara menambahkan pengguna ke wadah Docker?