GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara menggunakan Docker secara praktis (bagian 1 - Pendahuluan)

Bagian 1:Pengantar terminologi

Pengantar

Bukanlah situasi yang tidak biasa, bagi para pengadopsi awal konsep dan teknologi yang baru diperkenalkan, menjadi benar-benar bingung ketika hal ini dapat secara mendasar mengubah cara mengembangkan dan memberikan layanan. Terutama ketika semua orang berbicara tentang sesuatu seperti Docker, dan betapa hebatnya dan perubahan permainannya. Kebingungan ini terjadi saat kami mencoba berbagai hal sejak awal dan langsung mengujinya tanpa memahami keseluruhan konsep dan latar belakang teknologi yang baru diperkenalkan ini.

Inilah sebabnya mengapa Anda mungkin telah meninggalkan seluruh tren wadah Linux, atau karena Anda membaca beberapa artikel kontroversial dari para penentang dan penentang. Di bagian pertama ini, dari serangkaian artikel, kami akan mencoba yang terbaik untuk menjernihkan dan menempatkan semuanya pada perspektif yang tepat untuk pengembang, sysadmin, insinyur Tanya Jawab, atau bahkan penggemar yang hanya membutuhkan inspirasi yang tepat untuk menggunakan wadah Linux. dan memecahkan masalah TI khusus mereka.

Kita akan mulai dari awal, dengan beberapa deskripsi yang diperlukan tentang peristiwa dan konsep sejarah dan kemudian saya akan menunjukkan bagaimana kita dapat mulai bekerja dengan container Docker. Dengan cara ini, Anda akan dapat memahami "apa yang menyebabkan pembuatan container", "apa yang menjadi bahan penyusunnya", dan "bagaimana cara kerjanya".


Bagaimana kontainer muncul

Selama bertahun-tahun, server digunakan sebagaimana adanya, dengan konfigurasi perangkat keras tunggal, yang berisi sistem operasi tunggal (disingkat OS), untuk menyediakan ribuan situs web dan beberapa versi awal perangkat lunak perusahaan pada mesin yang sama.

Untuk mencapai penskalaan yang diperlukan, perusahaan perlu membeli perangkat keras baru dan merencanakan dengan cermat langkah-langkah untuk setiap implementasi baru. Dalam periode waktu ini, otomatisasi masih dalam tahap awal dan sebagian besar konfigurasi dilakukan dengan tangan.

Virtualisasi

Kemudian virtualisasi datang yang memungkinkan orang menggunakan server perangkat keras yang sama sehingga mereka dapat menelurkan beberapa server virtual untuk tujuan yang berbeda dan menjualnya satu per satu. Ini tidak hanya, sangat mengurangi biaya kepemilikan perangkat keras server, tetapi juga menyediakan sarana untuk mengotomatisasi dan mengelola ratusan instance server dengan mudah.

Virtualisasi, sebenarnya merakit komponen perangkat keras seperti CPU, RAM, Disk, Kartu Jaringan dll yang ditiru oleh perangkat lunak khusus. Ini seperti membangun PC, dengan komponen intinya yang disebutkan di atas, di dalam sistem operasi dan merakitnya untuk bekerja seolah-olah itu adalah PC nyata. Dengan cara ini, PC virtual menjadi "tamu" di dalam PC sebenarnya yang dengan sistem operasinya disebut host.

Meskipun virtualisasi perangkat keras diperkenalkan kira-kira 10 tahun yang lalu, ia digunakan secara luas di berbagai jenis server oleh pengembang dan sysadmin, menggunakan fitur KVM (Mesin Virtual Berbasis Kernel) yang dibangun di Kernel Linux sejak 2007. Dengan "VT" Intel -x" dan ekstensi "AMD-V" AMD yang membantu membuat sejumlah sistem operasi tervirtualisasi (dibatasi hanya oleh sumber daya perangkat keras), setiap pengembang dapat dengan murah membuat beberapa mesin virtual (singkatnya VM) dengan OS, bahkan dengan versi berbeda dari mereka. Dengan cara ini mereka dapat menguji aplikasi mereka tanpa perlu membeli rig baru atau beberapa dari mereka, tergantung pada OS yang mereka butuhkan.

Salah satu keuntungan besar Virtualisasi adalah kemampuan untuk membuat snapshot. Snapshot adalah keadaan mesin virtual pada titik waktu yang tepat. Anda dapat menganggapnya sebagai keadaan "beku" dari mesin virtual pada waktu tertentu. Dengan cara ini pengembang atau sysadmin dapat membuat mesin virtual, menginstal OS tertentu dan alat yang dia butuhkan dan membuat snapshot dari semuanya. Kemudian dia dapat mulai menguji, mengonfigurasi, atau tugas apa pun yang perlu dia selesaikan dan kemudian kembali ke snapshot sebelumnya secara instan, pada waktu tertentu.

Juga Mesin Virtual dapat dimigrasikan dari satu mesin host ke mesin host lainnya dan melanjutkan status kerjanya tanpa konfigurasi khusus. Ini karena, seluruh mesin virtual sebenarnya adalah beberapa file besar yang biasanya disebut gambar. Anda dapat memikirkan gambar, seperti file ISO distribusi Linux favorit Anda. Karena file ISO berisi semua komponen penting untuk benar-benar menjalankan seluruh OS dari USB/DVD langsung, dengan cara yang sama seperti image mesin virtual, berisi OS dan komponen perangkat keras virtual.

Semua hal di atas, menciptakan seluruh industri perusahaan hosting Virtual Private Server (VPS) di mana pelanggan dapat langsung meluncurkan gambar server yang telah dikonfigurasi sebelumnya untuk tujuan apa pun. Penyedia VPS ini biasanya memiliki 10 atau 20 snapshot VM di server host utama yang dikloning beberapa kali per permintaan pelanggan untuk menyediakan server virtual yang mereka butuhkan

Wadah

Seperti yang dapat Anda bayangkan, mesin Virtual adalah seluruh sistem operasi yang berjalan di dalam sistem operasi host. Sistem operasi tamu, meskipun terisolasi, mereka berbagi dan memanfaatkan sumber daya perangkat keras dari mesin host. Terkadang, ada beberapa sistem operasi tamu yang menjalankan seluruh tumpukan yang sama dari sistem operasi tertentu.

Situasi ini, membuka peluang bagi pengembang dan peretas kernel Linux untuk memunculkan ide yang disebut virtualisasi proses ringan. Jadi, alih-alih menggunakan seluruh sistem operasi, mereka dapat mengurangi komponen "yang tidak perlu" dari OS virtual untuk membuat versi minimalnya. Ini mengarah pada pembuatan LXC (Linux Containers).

Sebelum kita menggali lebih dalam, ada baiknya kita menyebutkan bahwa proses virtualisasi yang ringan bukanlah hal yang baru. Solaris memiliki Zona, BSD memiliki penjara dan ada teknologi serupa lainnya seperti OpenVZ. Masalahnya adalah mereka sering mengubah nama atau tujuan mereka ketika konsep dasar yang sama digunakan pada proyek lain. Memang tidak semua sama, tetapi prinsip dasarnya hampir sama. Mereka semua ingin mengisolasi, menerapkan, dan menciptakan cara sekali pakai dalam memberikan layanan perangkat lunak tanpa perlu repot membangun kembali semuanya dan setiap saat dari bawah ke atas.

Proyek LXC berbeda dari mesin Virtual yang disebutkan di atas karena merupakan lingkungan virtualisasi tingkat sistem operasi dan bukan lingkungan virtualisasi perangkat keras. Mereka berdua melakukan hal yang sama, tetapi LXC menyediakan virtualisasi tingkat sistem operasi melalui lingkungan virtual yang memiliki proses dan ruang jaringannya sendiri, alih-alih membuat mesin virtual lengkap. Akibatnya, OS virtual LXC memiliki persyaratan sumber daya minimal dan booting dalam hitungan detik.

Seperti yang Anda lihat pada gambar berikut, Ubuntu virtual LXC di sebelah kiri, menggunakan 11MB dalam instalasi default.

Docker

Seperti biasanya, hal-hal tidak berhenti hanya dengan menghapus bagian-bagian yang tidak perlu dari sebuah OS. Berbagai teknologi menjadi hidup dengan mendorong batas-batas virtualisasi proses ringan lebih jauh. Pada tahun 2013, pengembang dotCloud (perusahaan yang kemudian berganti nama menjadi Docker Inc.) memperkenalkan Docker.

Docker adalah mesin open source yang fokus utamanya adalah untuk mengotomatisasi penyebaran aplikasi di dalam wadah perangkat lunak dan otomatisasi virtualisasi tingkat sistem operasi di Linux. Wadah buruh pelabuhan, tidak seperti mesin virtual dan lxc, tidak memerlukan atau menyertakan sistem operasi terpisah. Sebaliknya, ia bergantung pada fungsionalitas kernel Linux dan menggunakan isolasi sumber daya.

Wadah buruh pelabuhan dibuat dari gambar buruh pelabuhan (ingat snapshotnya). Anda dapat membayangkan wadah buruh pelabuhan sebagai status langsung aplikasi web yang berjalan dari file iso. Tapi kali ini iso, yang dalam contoh kita setara dengan gambar buruh pelabuhan, hanya berisi aplikasi dan dependensinya.

Salah satu fitur hebat dari buruh pelabuhan, yang akan kita bahas di bagian kedua, adalah file buruh pelabuhan. File buruh pelabuhan adalah resep yang berisi semua langkah yang diperlukan untuk membuat gambar buruh pelabuhan. Ada banyak sekali file buruh pelabuhan “siap pakai” yang dapat Anda sesuaikan untuk digunakan apa adanya.

Ringkasan

Seperti yang dapat Anda bayangkan, cakupan dari server lengkap, ke virtualisasi OS dan kemudian ke container adalah untuk menghilangkan beban membangun, menerapkan, dan memelihara seluruh sistem operasi ketika yang mereka butuhkan hanyalah lapisan aplikasi.

Dengan pengantar ini, kami mencoba memberi Anda beberapa peristiwa mendasar yang mengarahkan kami pada pembuatan wadah Docker. Saya juga mencoba menyederhanakan beberapa konsepnya, sehingga Anda dapat memahami perbedaan antara berbagai teknologi virtualisasi dan di mana penerapannya.

Bagian kedua yang akan dipublikasikan minggu depan, akan menunjukkan dengan tepat bagaimana kita dapat menginstal dan menggunakan container Docker dengan cara yang praktis, jadi pantau terus.


Ubuntu
  1. Cara Menginstal dan Menggunakan Docker di Ubuntu 20.04

  2. Cara Menggunakan Perintah Inspeksi Docker

  3. Cara mengkonfigurasi buruh pelabuhan untuk menggunakan proxy

  1. Cara Mengatur dan Menggunakan Registri Docker Pribadi

  2. Cara Menggunakan Tulis Docker

  3. Cara Menggunakan Dockerfile untuk Membangun Gambar Docker

  1. Volume Docker NFS:Cara Membuat dan Menggunakan

  2. Cara Menginstal dan Menggunakan Docker di Ubuntu 20.04

  3. Cara Menginstal dan Menggunakan Docker di Ubuntu 18.04