GNU/Linux >> Belajar Linux >  >> Ubuntu

Apa itu Doker?

Pendahuluan

Docker adalah salah satu platform berbasis container paling populer yang menarik perhatian banyak tim pengembangan. Semakin banyak perusahaan yang beralih ke Docker karena keandalan, kinerja, dan fungsionalitasnya.

Oleh karena itu, penting untuk memahami perangkat lunak penampung sumber terbuka ini dan komponen yang mendasarinya.

Dalam artikel ini, Anda akan mempelajari apa itu Docker, apa saja komponen terpenting Docker, dan pro dan kontra menggunakan platform.

Apa itu Docker?

Docker adalah platform containerization open-source yang digunakan untuk mengembangkan, menyebarkan, dan mengelola aplikasi di lingkungan virtual ringan yang disebut container.

Ini terutama digunakan sebagai platform pengembangan perangkat lunak untuk mengembangkan aplikasi terdistribusi yang bekerja secara efisien di lingkungan yang berbeda. Dengan membuat sistem perangkat lunak agnostik, pengembang tidak perlu khawatir tentang masalah kompatibilitas. Pengemasan aplikasi ke dalam lingkungan yang terisolasi (wadah) juga mempermudah pengembangan, penerapan, pemeliharaan, dan penggunaan aplikasi.

Karena Docker menggunakan virtualisasi untuk membuat wadah untuk menyimpan aplikasi, konsepnya mungkin tampak mirip dengan mesin virtual. Meskipun keduanya mewakili lingkungan virtual terisolasi yang digunakan untuk pengembangan perangkat lunak, ada perbedaan penting antara container dan VM. Perbedaan yang paling penting adalah wadah Docker lebih ringan, lebih cepat, dan lebih hemat sumber daya daripada mesin virtual.

Menginstal Docker itu sederhana. Untuk petunjuk langkah demi langkah, lihat:

Cara Menginstal Docker di UbuntuCara Menginstal Docker di CentOSCara Menginstal Docker di Debian

Apa itu Container?

Kontainer Docker adalah lingkungan runtime tervirtualisasi yang ringan untuk menjalankan aplikasi. Setiap wadah mewakili paket perangkat lunak yang berisi kode, alat sistem, waktu proses, pustaka, dependensi, dan file konfigurasi yang diperlukan untuk menjalankan aplikasi tertentu. Mereka independen dan terisolasi dari host dan instance lain yang berjalan di host.

Wadah didasarkan pada gambar Docker. Anda membangun wadah dengan menjalankan gambar di Mesin Docker. Karena ini adalah istilah Docker yang paling umum, pastikan Anda memahami perbedaan antara image Docker dan container Docker.

Perangkat keras yang sama dapat menampung banyak wadah. Tidak seperti mesin virtual, container melakukan virtualisasi pada level aplikasi. Oleh karena itu, mereka berbagi kernel OS dengan host dan memvirtualisasikan sistem operasi di atasnya. Ini berarti Anda menggunakan lebih sedikit sumber daya dan memelihara lingkungan virtual ringan yang cepat dan mudah dikonfigurasi.

Selain sebagai sistem agnostik, container cepat dan mudah untuk memulai, mengkonfigurasi, menambah, menghentikan, dan menghapus. Pengembang dapat bekerja pada aplikasi yang sama di lingkungan yang berbeda mengetahui ini tidak akan mempengaruhi kinerjanya. Selain itu, mereka dapat berbagi data antar container menggunakan volume data.

Untuk memaksimalkan kinerja container, pastikan untuk menerapkan praktik terbaik container Docker.

Untuk Apa Docker Digunakan?

Docker digunakan untuk:

  • Menjalankan banyak beban kerja dengan sumber daya yang lebih sedikit.
  • Mengisolasi dan memisahkan aplikasi.
  • Menstandarkan lingkungan untuk memastikan konsistensi di seluruh siklus pengembangan dan rilis.
  • Menyederhanakan siklus hidup pengembangan dan mendukung alur kerja CI/CD.
  • Mengembangkan beban kerja yang sangat portabel yang dapat berjalan di platform multi-cloud.

Selain itu, digunakan sebagai:

  • Alternatif hemat biaya untuk mesin virtual.
  • Sistem kontrol versi untuk aplikasi.

Sejarah Singkat Docker

Docker diperkenalkan sebagai proyek sumber terbuka pada Maret 2013 di PyCon. Sebelum berfokus pada container, proyek ini dimulai sebagai solusi Platform sebagai Layanan yang disebut DotCloud, pada tahun 2008. Namun, banyak pengembang menunjukkan minat yang besar khususnya untuk teknologi yang mendasari DotCloud - wadah perangkat lunak.

Sejak itu, Docker telah menarik perhatian banyak penyedia teknologi dan perusahaan terkenal.

Komponen Inti Docker

Alat ini terdiri dari beberapa komponen, masing-masing memainkan peran penting dalam platform.

Mesin Docker

Mesin Docker (DE) diinstal pada mesin host dan mewakili inti dari sistem Docker. Ini adalah sistem runtime yang ringan dan teknologi client-server yang mendasarinya yang membuat dan mengelola container.

Mesin Docker terdiri dari tiga komponen:

  • Server - daemon Docker (dockerd), yang bertanggung jawab untuk membuat dan mengelola container.
  • API Istirahat - membangun komunikasi antara program dan Docker dan menginstruksikan dockerd apa yang harus dilakukan.
  • Antarmuka Baris Perintah (CLI) - digunakan untuk menjalankan perintah Docker.

Gambar Docker

Gambar Docker adalah template yang digunakan untuk membuat container. Seperti snapshot untuk mesin virtual, gambar Docker tidak dapat diubah, file hanya-baca yang terdiri dari kode sumber, pustaka, dependensi, alat, dan file lain apa pun yang diperlukan untuk menjalankan aplikasi. Setiap gambar dibuat dari file Docker, yang berisi instruksi khusus untuk membuat gambar Docker tertentu.

Setelah Anda menguasai pembuatan image Docker dari Dockerfiles, Anda dapat membuat image dan container khusus dengan lebih sederhana dan lebih cepat.

Selain mempercepat build Docker, image juga berguna untuk meningkatkan reusability dan pada dasarnya mengurangi penggunaan disk. Karena Anda ingin menjaga wadah Anda tetap ringan dan cepat, sangat penting untuk mempertahankan gambar kecil. Memanfaatkan basis gambar yang lebih ringan, menghindari lapisan yang tidak perlu, dan menggunakan file .dockerignore hanyalah beberapa cara untuk menjaga agar gambar Docker Anda tetap kecil.

Dockerfile

Dockerfile adalah skrip yang terdiri dari serangkaian instruksi tentang cara membangun image Docker. Instruksi ini termasuk menentukan sistem operasi, bahasa, variabel lingkungan, lokasi file, port jaringan, dan komponen lain yang diperlukan untuk menjalankan gambar. Semua perintah dalam file dikelompokkan dan dijalankan secara otomatis.

Sebuah gambar memiliki banyak lapisan. Setelah Anda menjalankan gambar Docker untuk membuat wadah, lapisan baca-tulis baru ditambahkan. Ini kadang-kadang disebut sebagai lapisan wadah. Lapisan tambahan memungkinkan Anda membuat perubahan pada gambar dasar, yang dapat Anda komit untuk membuat gambar Docker baru untuk penggunaan di masa mendatang.

Pusat Docker

Docker Hub adalah repositori image container berbasis cloud terbesar yang disediakan oleh Docker. Ini memasok lebih dari 100.000 gambar yang tersedia untuk digunakan yang dibuat oleh proyek sumber terbuka, vendor perangkat lunak, dan komunitas Docker.

Platform ini memungkinkan Anda mengirimkan aplikasi ke mana saja dengan cepat, berkolaborasi dengan rekan satu tim, dan mengotomatiskan build untuk integrasi yang lebih cepat ke jalur pengembangan.

Seperti GitHub, developer mendorong dan menarik image container dari Docker Hub dan memutuskan apakah akan menjadikannya publik atau pribadi.

Volume Docker

Alih-alih menambahkan lapisan baru ke gambar, solusi yang lebih baik untuk melestarikan data yang dihasilkan oleh wadah yang sedang berjalan adalah menggunakan volume Docker. Alat yang berguna ini memungkinkan pengguna untuk menyimpan data, membagikannya di antara wadah, dan memasangnya ke wadah baru. Volume Docker tidak bergantung pada siklus hidup container karena disimpan di host.

Ada berbagai cara untuk membuat dan memasang volume Docker saat meluncurkan wadah. Pelajari lebih lanjut di Volume Docker:Cara Membuat &Memulai.

Tulisan Docker

Saat menjalankan dan mengelola beberapa container secara bersamaan, Docker Compose adalah alat yang berguna yang dirancang untuk menyederhanakan proses. Ini merangkai beberapa wadah yang diperlukan untuk bekerja sama dan mengontrolnya melalui satu perintah terkoordinasi.

Docker Compose digunakan untuk meluncurkan, mengeksekusi, berkomunikasi, dan menutup container dengan perintah. Ini dilakukan dengan menggunakan file YAML yang mengonfigurasi layanan aplikasi.

Instal Docker Compose di CentOSInstall Docker Compose di Ubuntu

Desktop Docker

Docker Desktop, sebelumnya dikenal sebagai Docker untuk Windows dan Docker untuk Mac, adalah aplikasi yang memungkinkan Anda untuk mulai membuat dan menjalankan container di Windows dan Mac dalam hitungan menit. Ini adalah cara sederhana untuk menginstal dan menyiapkan seluruh lingkungan pengembangan Docker. Ini termasuk Docker Engine, Docker Compose, klien Docker CLI, Docker Content Trust, Kubernetes, dan Credential Helper.

Alat ini digunakan untuk membangun dan berbagi aplikasi dan layanan mikro dalam container dalam berbagai bahasa dan kerangka kerja, pada platform cloud apa pun.

Untuk mempelajari lebih lanjut, lihat dokumentasi resmi Docker di Desktop Docker.

Kelebihan Docker

  • Konsistensi . Docker memastikan keandalan bahwa aplikasi Anda berjalan sama di beberapa lingkungan. Pengembang yang bekerja pada mesin dan sistem operasi yang berbeda dapat bekerja sama pada aplikasi yang sama tanpa masalah lingkungan.
  • Otomasi . Platform ini memungkinkan Anda untuk mengotomatiskan tugas yang membosankan dan berulang, serta menjadwalkan pekerjaan tanpa intervensi manual.
  • Penerapan lebih cepat . Karena container memvirtualisasikan OS, tidak ada waktu booting saat memulai instance container. Oleh karena itu, Anda dapat melakukan penerapan dalam hitungan detik. Selain itu, Anda dapat berbagi penampung yang ada untuk membuat aplikasi baru.
  • Dukungan CI/CD . Docker bekerja dengan baik dengan praktik CI/CD karena mempercepat penerapan, menyederhanakan pembaruan, dan memungkinkan rekan satu tim untuk bekerja bersama secara efisien.
  • Rollback dan kontrol versi gambar . Wadah didasarkan pada gambar Docker yang dapat memiliki banyak lapisan, masing-masing mewakili perubahan dan pembaruan di pangkalan. Fitur ini tidak hanya mempercepat proses pembuatan, tetapi juga menyediakan kontrol versi atas penampung. Ini memungkinkan pengembang untuk memutar kembali ke versi sebelumnya jika diperlukan.
  • Modularitas . Kontainer adalah lingkungan virtual yang independen dan terisolasi. Dalam aplikasi multi-kontainer, setiap kontainer memiliki fungsi tertentu. Dengan memisahkan aplikasi, pengembang dapat dengan mudah mengerjakan bagian tertentu tanpa menghapus seluruh aplikasi.
  • Sumber daya dan efisiensi biaya . Karena container tidak menyertakan sistem operasi tamu, container tersebut jauh lebih ringan dan lebih kecil daripada VM. Mereka menggunakan lebih sedikit memori dan menggunakan kembali komponen berkat volume data dan gambar. Selain itu, container tidak memerlukan server fisik yang besar karena dapat berjalan sepenuhnya di cloud.

Kekurangan Docker

  • Tidak ada antarmuka grafis . Docker bukanlah pilihan terbaik jika Anda ingin menjalankan aplikasi yang membutuhkan antarmuka grafis. Ini terutama untuk aplikasi hosting yang berjalan di baris perintah.
  • Masalah keamanan . Meskipun Docker menyediakan keamanan dengan mengisolasi konten dari host dan satu sama lain, ada risiko keamanan khusus Docker tertentu. Banyak potensi masalah keamanan yang mungkin muncul saat bekerja dengan container, jadi pastikan untuk menerapkan praktik keamanan Docker terbaik yang dapat membantu Anda mencegah serangan dan pelanggaran hak istimewa.
  • Kurva pembelajaran . Bahkan pengembang yang berpengalaman dengan infrastruktur VM memerlukan waktu untuk membiasakan diri dengan konsep Docker dan cara kerjanya. Jika beralih ke Docker, pastikan untuk memperhitungkan kurva pembelajaran yang diperlukan.

Ubuntu
  1. Apa itu Docker Container:Panduan Pengantar untuk Pemula

  2. Apa Perbedaan Antara Kontainer LXC, LXD, dan Docker?

  3. Apa itu Docker (dan wadah Linux?)

  1. Cara Menggunakan Tulis Docker

  2. Bagaimana Menghubungkan Kontainer Docker

  3. Apa yang Baru di Docker Compose v2?

  1. Apa itu Podman dan Apa Bedanya dengan Docker?

  2. Cara Mendaftar Kontainer Docker

  3. Pengantar Kontainer Docker