One place for hosting & domains

      Cara Menciptakan Pengguna Baru dan Memberikan Izin di MySQL


      Pengantar

      MySQL adalah perangkat lunak manajemen basis data sumber terbuka yang membantu pengguna untuk menyimpan, mengorganisasi, dan kemudian mengambil data. MySQL memiliki beragam opsi untuk memberikan izin bernuansa kepada pengguna tertentu di dalam tabel dan basis data — tutorial ini akan memberikan ikhtisar singkat tentang sebagian dari banyak opsi tersebut.

      Apa Arti Sorotan

      Di sepanjang tutorial ini, baris apa pun yang pengguna harus masukkan atau sesuaikan akan disorot! Sedangkan untuk sisanya, sebagian besar dapat dilakukan salin dan tempel.

      Cara Menciptakan Pengguna Baru

      Dalam Bagian 1 dari Tutorial MySQL, kita telah melakukan semua pengeditan di MySQL sebagai pengguna root, dengan akses penuh ke semua basis data. Namun, jika mungkin diperlukan pembatasan lebih banyak, ada beberapa cara untuk menciptakan pengguna dengan izin khusus.

      Mari kita mulai dengan menciptakan pengguna baru di dalam shell MySQL:

      • CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

      Catatan: Ketika menambahkan pengguna di dalam shell MySQL di tutorial ini, kita akan menetapkan hos pengguna sebagai localhost dan bukan alamat IP server. localhost adalah nama hos yang berarti “komputer ini,” dan MySQL memperlakukan nama hos tertentu secara istimewa: saat pengguna dengan hos tersebut melakukan log masuk ke MySQL, MySQL akan mencoba terhubung ke server lokal menggunakan berkas soket Unix. Dengan demikian, localhost biasanya digunakan saat Anda berencana untuk tershubung dengan melakukan SSH ke server atau saat Anda menjalankan klien mysql lokal untuk terhubung ke server MySQL lokal.

      Di titik ini newuser tidak memiliki izin untuk melakukan apa pun dengan basis data. Bahkan, sekalipun newuser mencoba log masuk (dengan kata sandi, password, itu tidak akan berhasil mencapai shell MySQL.

      Oleh karena itu, hal pertama yang dilakukan adalah memberikan akses ke informasi yang akan diperlukan pengguna.

      • GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

      Tanda bintang dalam perintah ini merujuk ke basis data dan tabel (secara berurutan) yang dapat diakses — perintah spesifik ini memungkinkan pengguna untuk membaca, mengedit, mengeksekusi, dan melaksanakan semua tugas di seluruh basis data dan tabel.

      Harap diperhatikan bahwa dalam contoh ini, kita memberi newuser<^> suatu akses root penuh ke segala hal dalam basis data kita. Walaupun membantu menjelaskan beberapa konsep MySQL, tetapi hal ini mungkin tidak praktis untuk kebanyakan kasus penggunaan dan dapat menjadikan keamanan basis data Anda berada dalam risiko tinggi.

      Setelah menyelesaikan izin yang Anda ingin siapkan untuk pengguna baru, selalu pastikan untuk memuat ulang semua privilese.

      Sekarang, perubahan yang Anda buat akan diterapkan.

      Cara Memberikan Berbagai Izin Pengguna

      Berikut ini adalah daftar singkat dari izin umum lainnya yang bisa dinikmati oleh pengguna.

      • ALL PRIVILEGES - seperti yang kita lihat sebelumnya, ini akan memberi pengguna MySQL suatu akses penuh ke basis data yang ditunjuk (atau jika tidak ada basis data yang dipilih, akses global di seluruh sistem)
      • CREATE - mengizinkan mereka untuk menciptakan tabel atau basis data baru
      • DROP - mengizinkan mereka untuk menghapus tabel atau basis data
      • DELETE - mengizinkan mereka untuk menghapus baris dari tabel
      • INSERT - mengizinkan mereka untuk menyisipkan baris ke dalam tabel
      • SELECT - mengizinkan mereka untuk menggunakan perintah SELECT guna membaca seluruh basis data
      • UPDATE - mengizinkan mereka untuk memperbarui baris tabel
      • GRANT OPTION - mengizinkan mereka untuk memberikan izin atau menghapus privilese pengguna lainnya

      Untuk memberikan izin kepada pengguna tertentu, Anda dapat menggunakan kerangka kerja ini:

      • GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';

      Jika Anda ingin memberi mereka akses ke basis data atau tabel apa pun, pastikan untuk menempatkan tanda bintang (*) di tempat nama basis data atau tabel.

      Setiap kali Anda memperbarui atau mengubah izin, pastikan untuk menggunakan perintah Flush Privileges.

      Jika Anda perlu mencabut izin, strukturnya hampir identik dengan memberikan izin:

      • REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost';

      Perhatikan bahwa saat mencabut izin, sintaks mengharuskan Anda menggunakan FROM, alih-alih TO seperti saat kita memberikan izin.

      Anda dapat meninjau izin pengguna saat ini dengan menjalankan yang berikut:

      • SHOW GRANTS FOR 'username'@'localhost';

      Sama seperti Anda dapat menghapus basis data dengan DROP, Anda dapat menggunakan DROP untuk menghapus pengguna secara bersamaan:

      • DROP USER 'username'@'localhost';

      Untuk menguji pengguna baru, log keluar dengan mengetik:

      dan log masuk kembali dengan perintah ini di terminal:

      Kesimpulan

      Setelah menyelesaikan tutorial ini, Anda seharusnya memiliki pemahaman tentang cara menambah pengguna baru dan memberikan berbagai izin kepada mereka dalam basis data MySQL. Dari sini, Anda dapat terus menjelajahi dan bereksperimen dengan berbagai pengaturan izin untuk basis data, atau Anda mungkin ingin mempelajari lebih lanjut tentang konfigurasi MySQL dengan tingkat yang lebih tinggi.

      Untuk informasi lebih lanjut tentang dasar-dasar MySQL, kami menyarankan Anda untuk melihat tutorial berikut:



      Source link

      Cara Membuat Daftar dan Menghapus Aturan Firewall Iptables


      Pengantar

      Iptables adalah suatu firewall yang memainkan peran penting dalam keamanan jaringan untuk banyak sistem Linux. Walaupun banyak tutorial iptables yang akan mengajarkan Anda cara menciptakan aturan firewall untuk mengamankan server, tutorial berikut ini akan berfokus pada aspek yang berbeda dari manajemen firewall: membuat daftar dan menghapus aturan.

      Dalam tutorial ini, kita akan membahas cara melakukan tugas iptables berikut:

      • Membuat daftar aturan
      • Membersihkan Penghitung Bita dan Paket
      • Menghapus aturan
      • Melakukan flush rantai (menghapus semua aturan dalam suatu rantai)
      • Melakukan flush semua rantai dan tabel, menghapus semua rantai, dan menerima semua lalu lintas

      Catatan: Ketika bekerja dengan firewall, berhati-hatilah agar jangan sampai Anda mengunci diri sendiri dari server dengan memblokir lalu lintas SSH (porta 22, secara asali). Jika Anda kehilangan akses karena pengaturan firewall, Anda mungkin perlu menghubungkannya melalui konsol di luar jaringan untuk memperbaiki akses Anda.

      Prasyarat

      Tutorial ini mengasumsikan Anda menggunakan server Linux dengan perintah iptables yang sudah terinstal, dan bahwa pengguna Anda memiliki privilese sudo.

      Jika Anda memerlukan bantuan dengan penyiapan awal ini, silakan merujuk ke panduan Penyiapan Server Awal dengan Ubuntu 20.04 dari kami. Juga tersedia untuk Debian dan CentOS

      Mari kita lihat cara membuat daftar aturan terlebih dahulu. Ada dua cara berbeda untuk melihat aturan iptables Anda yang sedang aktif: di dalam tabel atau sebagai daftar dari spesifikasi aturan. Kedua metode ini memberikan informasi yang kurang-lebih sama dalam format berbeda.

      Untuk membuat daftar dari semua aturan iptables yang aktif menurut spesifikasi, jalankan perintah iptables dengan opsi -S:

      Output

      -P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT -N ICMP -N TCP -N UDP -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate INVALID -j DROP -A INPUT -p udp -m conntrack --ctstate NEW -j UDP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP -A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable -A INPUT -p tcp -j REJECT --reject-with tcp-reset -A INPUT -j REJECT --reject-with icmp-proto-unreachable -A TCP -p tcp -m tcp --dport 22 -j ACCEPT

      Seperti yang Anda lihat, keluarannya terlihat seperti perintah yang digunakan untuk menciptakannya, tanpa perintah iptables yang mendahuluinya. Ini juga akan terlihat mirip dengan berkas konfigurasi aturan iptables, jika Anda pernah menggunakan iptables-persistent atau iptables save.

      Membuat Daftar Rantai Spesifik

      Jika Anda ingin membatasi keluaran menurut suatu rantai spesifik (INPUT, OUTPUT, TCP, dll.), Anda dapat menentukan nama rantai secara langsung setelah opsi -S. Misalnya, untuk menunjukkan semua spesifikasi aturan dalam rantai TCP, Anda akan menjalankan perintah ini:

      Output

      -N TCP -A TCP -p tcp -m tcp --dport 22 -j ACCEPT

      Sekarang mari kita lihat cara alternatif untuk melihat aturan iptables yang aktif, sebagai tabel aturan.

      Membuat Daftar Aturan sebagai Tabel

      Membuat daftar aturan iptables dalam bentuk tabel dapat berguna untuk membandingkan aturan-aturan yang berbeda terhadap satu sama lain,

      Untuk mendapatkan keluaran dari semua aturan iptables aktif dalam suatu tabel, jalankan perintah iptables dengan opsi -L:

      Ini akan memberikan keluaran dari semua aturan saat ini yang diurutkan berdasarkan rantai.

      Jika Anda ingin membatasi keluaran menurut suatu rantai tertentu (INPUT, OUTPUT, TCP, dll.), Anda dapat menentukan nama rantai secara langsung setelah opsi -L.

      Mari kita lihat contoh dari rantai INPUT:

      Output

      Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere DROP all -- anywhere anywhere ctstate INVALID UDP udp -- anywhere anywhere ctstate NEW TCP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW ICMP icmp -- anywhere anywhere ctstate NEW REJECT udp -- anywhere anywhere reject-with icmp-port-unreachable REJECT tcp -- anywhere anywhere reject-with tcp-reset REJECT all -- anywhere anywhere reject-with icmp-proto-unreachable

      Baris pertama keluaran mengindikasikan nama rantai (INPUT, dalam kasus ini), yang diikuti oleh kebijakan asali (DROP). Baris selanjutnya terdiri atas tajuk dari setiap kolom di dalam tabel, dan diikuti oleh aturan rantai. Mari kita membahas yang diindikasikan setiap tajuk:

      • target: Jika paket sesuai aturan, maka target menetapkan tindakan yang harus dilakukan dengannya. Sebagai contoh, paket dapat diterima, didrop, dicatat, atau dikirim ke rantai lain untuk dibandingkan terhadap aturan lebih lanjut
      • prot: Protokol, seperti tcp, udp, icmp, atau all
      • opt: Jarang digunakan, kolom ini mengindikasikan opsi IP
      • source: Alamat IP sumber atau subnet lalu lintas, atau anywhere
      • destination: Alamat IP tujuan atau subnet lalu lintas, atau anywhere

      Kolom terakhir, yang tidak diberi label, mengindikasikan opsi dari suatu aturan. Yang berarti, bagian apa pun dari aturan yang tidak diindikasikan oleh kolom sebelumnya. Ini dapat berupa apa pun, mulai dari porta sumber dan tujuan hingga kondisi koneksi dari paket.

      Menampilkan Hitungan Paket dan Ukuran Agregat

      Ketika membuat daftar aturan iptables, dimungkinkan untuk menampilkan jumlah paket, dan ukuran agregat dari paket dalam bita, yang sesuai dengan setiap aturan tertentu. Ini seringkali berguna saat sedang mencoba mendapatkan ide kasar tentang aturan yang sesuai dengan paket. Untuk melakukannya, gunakan opsi -L dan -v secara bersamaan.

      Misalnya, mari kita lihat rantai INPUT lagi, dengan opsi -v:

      • sudo iptables -L INPUT -v

      Output

      Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 284K 42M ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- lo any anywhere anywhere 0 0 DROP all -- any any anywhere anywhere ctstate INVALID 396 63275 UDP udp -- any any anywhere anywhere ctstate NEW 17067 1005K TCP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW 2410 154K ICMP icmp -- any any anywhere anywhere ctstate NEW 396 63275 REJECT udp -- any any anywhere anywhere reject-with icmp-port-unreachable 2916 179K REJECT all -- any any anywhere anywhere reject-with icmp-proto-unreachable 0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh ctstate NEW,ESTABLISHED

      Perhatikan bahwa daftar itu sekarang memiliki dua kolom tambahan, pkts dan bytes.

      Kini karena Anda telah mengetahui cara membuat daftar aturan firewall aktif dengan berbagai cara, mari kita lihat cara Anda dapat melakukan reset penghitung bita dan paket.

      Melakukan Reset Hitungan Paket dan Ukuran Agregat

      Jika Anda ingin membersihkan, atau menjadikan nol, penghitung bita dan paket untuk aturan Anda, gunakan opsi -Z. Opsi ini juga melakukan reset jika boot ulang terjadi. Ini berguna jika Anda ingin melihat apakah server Anda menerima lalu lintas baru yang sesuai dengan aturan yang ada.

      Untuk membersihkan penghitung semua rantai dan aturan, gunakan opsi -Z itu sendiri:

      Untuk membersihkan penghitung semua aturan dalam rantai tertentu, gunakan opsi -Z dan tentukan rantainya. Misalnya, untuk membersihkan penghitung rantai INPUT, jalankan perintah ini:

      Jika Anda ingin membersihkan penghitung untuk suatu aturan tertentu, tentukan nama rantai dan nomor aturan. Misalnya, untuk menjadikan penghitung kembali ke nol pada aturan pertama dalam rantai INPUT, jalankan ini:

      Karena kini Anda telah mengetahui cara melakukan reset penghitung bita dan paket iptables, mari kita lihat dua metode yang dapat digunakan untuk menghapusnya.

      Salah satu cara untuk menghapus aturan iptables adalah dengan spesifikasi aturan. Untuk melakukannya, Anda dapat menjalankan perintah iptables dengan opsi -D yang diikuti oleh spesifikasi aturan. Jika Anda ingin menghapus aturan menggunakan metode ini, Anda dapat menggunakan keluaran dari daftar aturan iptables -S untuk bantuan.

      Misalnya, jika Anda ingin menghapus aturan yang mengedrop paket masuk yang tidak valid (-A INPUT -m conntrack --ctstate INVALID -j DROP), Anda dapat menjalankan perintah ini:

      • sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP

      Perhatikan bahwa opsi -A, yang digunakan untuk mengindikasikan posisi aturan pada waktu pembuatan, harus dikecualikan di sini.

      Cara lain untuk menghapus aturan iptables adalah melalui rantai dan nomor barisnya. Untuk menentukan nomor baris aturan, buatlah daftar aturan dalam format tabel dan tambahkan opsi --line-numbers:

      • sudo iptables -L --line-numbers
      [secondary_output Output]
      Chain INPUT (policy DROP)
      num  target     prot opt source               destination
      1    ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
      2    ACCEPT     all  --  anywhere             anywhere
      3    DROP       all  --  anywhere             anywhere             ctstate INVALID
      4    UDP        udp  --  anywhere             anywhere             ctstate NEW
      5    TCP        tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW
      6    ICMP       icmp --  anywhere             anywhere             ctstate NEW
      7    REJECT     udp  --  anywhere             anywhere             reject-with icmp-port-unreachable
      8    REJECT     tcp  --  anywhere             anywhere             reject-with tcp-reset
      9    REJECT     all  --  anywhere             anywhere             reject-with icmp-proto-unreachable
      10   ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh ctstate NEW,ESTABLISHED
      ...
      

      Ini menambahkan nomor baris di setiap baris aturan, yang diindikasikan oleh tajuk num.

      Setelah Anda mengetahui aturan yang ingin Anda hapus, perhatikan rantai dan nomor baris dari aturannya. Kemudian, jalankan perintah iptables -D yang diikuti oleh rantai dan nomor raturan.

      Misalnya, jika kita ingin menghapus aturan masukan yang mengedrop paket tidak valid, kita dapat melihat bahwa itu adalah aturan 3 dari rantai INPUT. Jadi, kita harus menjalankan perintah ini:

      Karena kini Anda telah mengetahui cara menghapus aturan firewall individual, mari kita membahas cara melakukan flush rantai aturan.

      Melakukan Flush Rantai

      Iptables menawarkan cara untuk menghapus semua aturan dalam suatu rantai, atau melakukan flush suatu rantai. Bagian ini akan mencakup berbagai cara untuk melakukannya.

      Catatan: Berhati-hatilah agar tidak mengunci diri sendiri dari server Anda, melalui SSH, dengan melakukan flush rantai menggunakan kebijakan asali dari drop atau deny. Jika Anda melakukannya, Anda mungkin perlu terhubung dengannya melalui konsol untuk memperbaiki akses.

      Melakukan Flush Rantai Tunggal

      Untuk melakukan flush rantai tertentu, yang akan menghapus semua aturan dalam rantai itu, Anda dapat menggunakan opsi -F, atau padanan kata dari --flush, dan nama dari rantai yang akan dilakukan flush.

      Misalnya, untuk menghapus semua aturan dalam rantai INPUT, jalankan perintah ini:

      Melakukan Flush Semua Rantai

      Untuk melakukan flush semua rantai, yang akan menghapus semua aturan firewall, Anda dapat menggunakan opsi -F, atau padanan kata dari --flush dengan sendirinya:

      Melakukan Flush Semua Aturan, Menghapus Semua Rantai, dan Menerima Semua

      Bagian ini akan menunjukkan kepada Anda cara melakukan flush semua aturan firewall, tabel, dan rantai, serta mengizinkan semua lalu lintas jaringan.

      Catatan: Ini akan secara efektif menonaktifkan firewall Anda. Anda dapat mengikuti bagian ini hanya jika Anda ingin memulai ulang seluruh konfigurasi firewall.

      Pertama-tama, tetapkan kebijakan asali untuk setiap rantai bawaan menjadi ACCEPT. Alasan utama melakukan ini adalah untuk memastikan bahwa Anda tidak akan terkunci dari server Anda melalui SSH:

      • sudo iptables -P INPUT ACCEPT
      • sudo iptables -P FORWARD ACCEPT
      • sudo iptables -P OUTPUT ACCEPT

      Lalu lakukan flush tabel nat dan mangle, flush semua rantai (-F), dan hapus semua rantai non-asali (-X):

      • sudo iptables -t nat -F
      • sudo iptables -t mangle -F
      • sudo iptables -F
      • sudo iptables -X

      Firewall Anda kini akan mengizinkan semua lalu lintas jaringan. Jika Anda membuat daftar aturan sekarang, Anda tidak akan melihat apa pun, dan hanya tiga rantai asali (INPUT, FORWARD, dan OUTPUT) yang tersisa.

      Kesimpulan

      Setelah mengikuti tutorial ini, Anda seharusnya memahami cara membuat daftar dan menghapus aturan firewall iptables.

      Ingat bahwa setiap perubahan iptables melalui perintah iptables bersifat tidak permanen, dan perlu disimpan agar tetap ada di sepanjang boot ulang server. Ini dibahas dalam bagian Aturan Penyimpanan dari tutorial Aturan Firewall dan Perintah Umum.



      Source link

      Cara Menghapus Citra, Kontainer, dan Volume Docker


      Ringkasan Docker

      Pengantar

      Docker memberi kemudahan untuk membungkus aplikasi dan layanan di dalam kontainer sehingga Anda dapat menjalankannya di mana pun. Namun, seiring Anda bekerja dengan Docker, mudah juga untuk mengakumulasi jumlah citra, kontainer, dan volume data yang berlebihan dan tidak terpakai, yang mengacaukan keluaran dan mengonsumsi ruang diska.

      Docker menyediakan semua alat yang Anda perlukan untuk membersihkan sistem dari baris perintah. Panduan bergaya ringkasan ini memberikan referensi cepat tentang perintah-perintah yang berguna untuk membebaskan ruang diska dan menjaga sistem Anda tetap teratur dengan menghapus citra, kontainer, dan volume Docker.

      Cara Menggunakan Panduan Ini:

      • Panduan ini menggunakan format ringkasan dengan kutipan baris perintah mandiri
      • Silakan ke bagian apa pun yang relevan dengan tugas yang Anda sedang coba selesaikan.

      Sintaks pengganti perintah, command $(command), yang digunakan di dalam perintah tersedia dalam banyak shell populer seperti bash, zsh, dan Windows Powershell.

      Membersihkan Semua Citra, Kontainer, Volume, dan Jaringan yang Tak Digunakan atau Menggantung

      Docker menyediakan satu perintah tunggal yang akan membersihkan sumber daya apa pun — citra, kontainer, volume, dan jaringan — yang menggantung (tidak terkait dengan suatu kontainer):

      Untuk melakukan penghapusan tambahan pada kontainer yang diberhentikan dan semua citra yang tidak digunakan (bukan hanya citra yang menggantung), tambahkan bendera -a pada perintah:

      Menghapus Citra Docker

      Menghapus satu atau banyak citra tertentu

      Gunakan perintah docker images dengan bendera -a untuk menemukan ID citra yang Anda ingin hapus. Ini akan menunjukkan kepada Anda setiap citra, termasuk lapisan citra perantara. Ketika Anda telah menemukan citra yang ingin dihapus, Anda dapat memberikan ID citra atau tanda ke docker rmi:

      Membuat Daftar:

      Menghapus:

      Menghapus citra yang menggantung

      Citra Docker terdiri dari beberapa lapisan. Citra menggantung adalah lapisan yang tidak memiliki hubungan dengan citra apa pun yang ditandai. Citra menggantung ini tidak lagi berguna dan mengonsumsi ruang diska. Citra ini dapat ditemukan dengan menambahkan bendera filter, -f dengan nilai dangling=true ke perintah docker images. Ketika Anda yakin ingin menghapusnya, Anda dapat menggunakan perintah docker image prune:

      Catatan: Jika Anda membangun citra tanpa menandainya, citra akan muncul di daftar citra yang tergantung karena citra tersebut tidak memiliki hubungan dengan citra yang ditandai. Anda dapat menghindari situasi ini dengan memberikan tanda saat membangun, dan Anda dapat secara retroaktif menandai citra dengan perintah docker tag.

      Membuat Daftar:

      • docker images -f dangling=true

      Menghapus:

      Anda dapat menemukan semua citra yang cocok dengan suatu pola menggunakan kombinasi docker images dan grep. Setelah puas, Anda dapat menghapusnya menggunakan awk untuk memberikan ID ke docker rmi. Perhatikan bahwa utilitas ini tidak disediakan oleh Docker dan tidak selalu tersedia di seluruh sistem:

      Membuat Daftar:

      • docker images -a | grep "pattern"

      Menghapus:

      • docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi

      Menghapus semua citra

      Semua citra Docker di suatu sistem dapat dibuatkan daftar dengan menambahkan -a ke perintah docker images. Setelah yakin ingin menghapus semuanya, Anda dapat menambah bendera -q untuk memberikan ID Citra ke docker rmi:

      Membuat Daftar:

      Menghapus:

      • docker rmi $(docker images -a -q)

      Menghapus Kontainer

      Menghapus satu atau beberapa kontainer tertentu

      Gunakan perintah docker ps dengan bendera -a untuk menemukan nama atau ID kontainer yang Anda ingin hapus:

      Membuat Daftar:

      Menghapus:

      • docker rm ID_or_Name ID_or_Name

      Menghapus kontainer saat keluar

      Saat menciptakan suatu kontainer, jika Anda mengira bahwa Anda tidak akan menyimpannya setelah selesai, Anda dapat menjalankan docker run --rm untuk menghapusnya secara otomatis saat keluar.

      Jalankan dan Hapus:

      • docker run --rm image_name

      Menghapus semua kontainer yang telah ditinggalkan

      Anda dapat menemukan kontainer dengan menggunakan docker ps -a dan memfilter itu berdasarkan statusnya: tercipta (created), memulai ulang (restarting), berjalan (running), dihentikan sementara (paused), atau ditinggalkan (exited). Untuk meninjau daftar kontainer yang ditinggalkan, gunakan bendera -f untuk memfilter berdasarkan status. Ketika Anda yakin bahwa Anda ingin menghapus kontainer tersebut, gunakan -q untuk memberikan ID ke perintah docker rm.

      Membuat Daftar:

      • docker ps -a -f status=exited

      Menghapus:

      • docker rm $(docker ps -a -f status=exited -q)

      Menghapus kontainer menggunakan lebih dari satu filter

      Filter Docker dapat dikombinasikan melalui pengulangan bendera filter dengan nilai tambahan. Ini menghasilkan daftar kontainer yang memenuhi salah satu kondisi. Misalnya, jika Anda ingin menghapus semua kontainer yang ditandai sebagai Created (kondisi yang dihasilkan saat Anda menjalankan kontainer dengan perintah yang tidak valid) atau Exited, Anda dapat menggunakan dua filter:

      Membuat Daftar:

      • docker ps -a -f status=exited -f status=created

      Menghapus:

      • docker rm $(docker ps -a -f status=exited -f status=created -q)

      Anda dapat menemukan semua citra yang cocok dengan suatu pola menggunakan kombinasi docker ps dan grep. Ketika Anda puas dengan daftar yang ingin dihapus, Anda dapat menggunakan awk dan xargs untuk memberikan ID ke docker rm. Perhatikan bahwa utilitas ini tidak disediakan oleh Docker dan tidak selalu tersedia di seluruh sistem:

      Membuat Daftar:

      • docker ps -a | grep "pattern

      Menghapus:

      • docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm

      Menghentikan dan menghapus semua kontainer

      Anda dapat meninjau kontainer di sistem Anda dengan docker ps. Menambahkan bendera -a akan menunjukkan semua kontainer. Bila Anda yakin ingin menghapusnya, Anda dapat menambah bendera -q untuk memberikan ID ke perintah docker stop dan docker rm:

      Membuat Daftar:

      Menghapus:

      • docker stop $(docker ps -a -q)
      • docker rm $(docker ps -a -q)

      Menghapus Volume

      Menghapus satu atau beberapa volume tertentu - Docker 1.9 dan yang lebih baru

      Gunakan perintah docker volume ls untuk menemukan nama volume atau nama yang Anda ingin hapus. Kemudian, Anda dapat menghapus satu atau beberapa volume dengan perintah docker volume rm:

      Membuat Daftar:

      Menghapus:

      • docker volume rm volume_name volume_name

      Menghapus volume yang menggantung - Docker 1.9 dan yang lebih baru

      Karena tujuan volume itu adalah untuk hadir secara independen dari kontainer, saat kontainer dihapus, volume tidak secara otomatis dihapus secara bersamaan. Ketika volume ada dan tidak lagi terhubung ke kontainer apa pun, hal ini disebut volume yang menggantung. Untuk menemukan volume tersebut guna mengonfirmasi Anda ingin menghapusnya, Anda dapat menggunakan perintah docker volume ls dengan suatu filter untuk membatasi hasil hanya untuk volume menggantung. Ketika Anda puas dengan daftarnya, Anda dapat menghapus semuanya dengan docker volume prune:

      Membuat Daftar:

      • docker volume ls -f dangling=true

      Menghapus:

      Menghapus kontainer dan volumenya

      Jika Anda menciptakan volume yang tidak bernama, volume ini dapat dihapus secara bersamaan dengan kontainer menggunakan bendera -v. Perhatikan bahwa ini hanya berfungsi untuk volume yang tidak bernama. Ketika kontainer berhasil dihapus, ID volume ditampilkan. Perhatikan bahwa tidak ada referensi yang dibuat terhadap penghapusan volume. Jika tidak bernama, volume akan dihapus dari sistem tanpa pemberitahuan. Jika volumenya bernama, volume tersebut tetap ada tanpa pemberitahuan.

      Menghapus:

      • docker rm -v container_name

      Kesimpulan

      Panduan ini mencakup beberapa perintah umum yang digunakan untuk menghapus citra, kontainer, dan volume dengan Docker. Ada banyak kombinasi dan bendera lainnya yang dapat digunakan dengan satu sama lain. Untuk panduan yang komprehensif tentang apa saja yang tersedia, lihat dokumentasi Docker untuk docker system prune, docker rmi, docker rm, dan docker volume rm. Jika ada tugas pembersihan umum yang Anda ingin lihat di dalam panduan, silakan bertanya atau menuliskan saran di dalam komentar.



      Source link