Tutorial Docker - Pengantar Docker & Containerization



Dalam Tutorial Docker ini, Anda akan memahami kebutuhan di balik Docker & mendapatkan pengenalan tentang Docker. Ini adalah blog pertama dalam seri tutorial Docker

Saya harap Anda tidak melewatkan rangkaian blog Tutorial DevOps sebelumnya. Pergi melalui sini.Tren kontainer Docker yang tak terkendali sedang berkembang & organisasi mencari pemilik profesional .Kali ini, kami akan memandu Anda melalui Pengenalan ke Docker.

Tutorial Docker

Blog Tutorial Docker ini akan memberi Anda paparan konseptual & praktis ke Docker - Sebuah teknologi containerization zaman baru.





Di blog ini, kami akan fokus pada topik di bawah ini:

  • Apa itu Virtualisasi?
  • Apa itu Containerization
  • Keuntungan Kontainerisasi dibandingkan Virtualisasi
  • Pengantar Docker
  • Manfaat Docker
  • Virtualisasi vs Kontainerisasi
  • Instalasi Docker
  • Dockerfile, Gambar Docker & Kontainer Docker
  • Apa itu Docker Hub?
  • Arsitektur Docker
  • Docker Compose

Docker mendapatkan popularitas dan penggunaannya menyebar seperti api. Alasan semakin populernya Docker adalah sejauh mana Docker dapat digunakan dalam organisasi TI. Sangat sedikit alat di luar sana yang memiliki fungsi yang berguna bagi pengembang dan juga administrator sistem. Docker adalah salah satu alat yang benar-benar memenuhi janjinya Membangun , Kapal dan Lari .



Dengan kata sederhana, Docker adalah platform wadahisasi perangkat lunak, yang berarti Anda dapat membangun aplikasi Anda, mengemasnya bersama dengan dependensinya ke dalam sebuah wadah dan kemudian kontainer ini dapat dengan mudah dikirim untuk dijalankan di mesin lain.

Sebagai contoh: Mari pertimbangkan aplikasi berbasis linux yang telah ditulis dengan Ruby dan Python. Aplikasi ini membutuhkan versi tertentu dari linux, Ruby dan Python. Untuk menghindari konflik versi apa pun di pihak pengguna, container buruh pelabuhan linux dapat dibuat dengan versi Ruby dan Python yang diperlukan diinstal bersama dengan aplikasi. Sekarang pengguna akhir dapat menggunakan aplikasi dengan mudah dengan menjalankan penampung ini tanpa mengkhawatirkan ketergantungan atau konflik versi apa pun.

Penampung ini menggunakan Containerization yang dapat dianggap sebagai versi Virtualisasi yang berevolusi. Tugas yang sama juga dapat dicapai dengan menggunakan Mesin Virtual, namun tidak terlalu efisien.



Saya biasanya menerima pertanyaan pada saat ini, yaitu apa perbedaan antara Virtualisasi dan Penampung? Kedua istilah ini sangat mirip satu sama lain. Jadi, izinkan saya memberi tahu Anda Apa itu Virtualisasi?

Apa itu Virtualisasi?

Virtualisasi adalah teknik mengimpor sistem operasi Tamu di atas sistem operasi Host. Teknik ini adalah wahyu pada awalnya karena memungkinkan pengembang untuk menjalankan beberapa sistem operasi di mesin virtual yang berbeda yang semuanya berjalan pada host yang sama. Ini menghilangkan kebutuhan akan sumber daya perangkat keras tambahan. Keunggulan Mesin Virtual atau Virtualisasi adalah:

  • Beberapa sistem operasi dapat berjalan di mesin yang sama
  • Perawatan dan Pemulihan mudah jika terjadi kondisi kegagalan
  • Total biaya kepemilikan juga berkurang karena berkurangnya kebutuhan infrastruktur

Arsitektur Mesin Virtual - Tutorial Docker Tentang Pengenalan Docker - Edureka

Pada diagram di sebelah kanan, Anda dapat melihat ada sistem operasi host di mana ada 3 sistem operasi tamu yang berjalan yang tidak lain adalah mesin virtual.

Seperti yang Anda ketahui tidak ada yang sempurna, Virtualisasi juga memiliki beberapa kekurangan. Menjalankan beberapa Mesin Virtual dalam sistem operasi host yang sama menyebabkan penurunan kinerja. Ini karena OS tamu berjalan di atas OS host, yang akan memiliki kernel dan kumpulan pustaka dan dependensi sendiri. Ini membutuhkan banyak sumber daya sistem, yaitu hard disk, prosesor, dan terutama RAM.

Masalah lain dengan Mesin Virtual yang menggunakan virtualisasi adalah dibutuhkan waktu hampir satu menit untuk boot-up.Ini sangat penting dalam kasus aplikasi real-time.

Berikut adalah kerugian dari Virtualisasi:

  • Menjalankan beberapa Mesin Virtual menghasilkan kinerja yang tidak stabil
  • Hypervisor tidak seefisien sistem operasi host
  • Proses boot up yang lama dan membutuhkan waktu

Kelemahan ini menyebabkan munculnya teknik baru yang disebut Containerization. Sekarang izinkan saya memberi tahu Anda tentang Containerization.

Apa itu Containerization?

Containerization adalah teknik membawa virtualisasi ke tingkat sistem operasi. Sementara Virtualisasi membawa abstraksi ke perangkat keras, Containerization membawa abstraksi ke sistem operasi. Perhatikan bahwa Containerization juga merupakan jenis Virtualisasi. Namun penampung lebih efisien karena tidak ada OS tamu di sini dan menggunakan sistem operasi host, berbagi pustaka & sumber daya yang relevan jika diperlukan, tidak seperti mesin virtual. Biner khusus aplikasi dan pustaka kontainer berjalan di kernel host, yang membuat pemrosesan dan eksekusi menjadi sangat cepat. Bahkan mem-boot-up sebuah wadah hanya membutuhkan waktu sepersekian detik. Karena semua wadah berbagi, sistem operasi host dan hanya menampung aplikasi terkait binari & perpustakaan. Mereka ringan dan lebih cepat dari Mesin Virtual.

Keuntungan Kontainerisasi daripada Virtualisasi:

  • Kontainer pada kernel OS yang sama lebih ringan dan lebih kecil
  • Pemanfaatan sumber daya yang lebih baik dibandingkan dengan VM
  • Proses boot-up singkat dan membutuhkan beberapa detik

Pada diagram di sebelah kanan, Anda dapat melihat bahwa ada sistem operasi host yang digunakan bersama oleh semua container. Penampung hanya berisi pustaka khusus aplikasi yang terpisah untuk setiap penampung dan lebih cepat serta tidak membuang sumber daya apa pun.

Semua penampung ini ditangani oleh lapisan penampung yang bukan merupakan bawaan sistem operasi host. Oleh karena itu, diperlukan perangkat lunak, yang memungkinkan Anda membuat & menjalankan container di sistem operasi host Anda.

Lihat video tutorial Docker ini untuk pemahaman mendalam tentang Docker.

Tutorial Docker untuk Pemula | Apa itu Docker? | Alat DevOps | Edureka

Sekarang, izinkan saya memandu Anda melalui pengantar Docker.

Tutorial Docker - Pengantar Docker

Docker adalah platform containerization yang mengemas aplikasi Anda dan semua dependensinya dalam bentuk Container untuk memastikan bahwa aplikasi Anda berfungsi dengan lancar di lingkungan apa pun.

Seperti yang Anda lihat pada diagram di sebelah kanan, setiap aplikasi akan berjalan di wadah terpisah dan akan memiliki kumpulan pustaka dan dependensinya sendiri. Ini juga memastikan bahwa ada isolasi tingkat proses, yang berarti setiap aplikasi tidak bergantung pada aplikasi lain, memberikan jaminan kepada pengembang bahwa mereka dapat membangun aplikasi yang tidak akan mengganggu satu sama lain.

Sebagai pengembang, saya dapat membangun wadah yang memiliki aplikasi berbeda yang diinstal di dalamnya dan memberikannya kepada tim QA saya yang hanya perlu menjalankan wadah untuk mereplikasi lingkungan pengembang.

bulat ganda ke int java

Manfaat Docker

Sekarang, tim QA tidak perlu menginstal semua perangkat lunak dan aplikasi yang bergantung untuk menguji kode dan ini membantu mereka menghemat banyak waktu dan energi. Ini juga memastikan bahwa lingkungan kerja konsisten di semua individu yang terlibat dalam proses, mulai dari pengembangan hingga penerapan. Jumlah sistem dapat ditingkatkan dengan mudah dan kode dapat diterapkan padanya dengan mudah.

Virtualisasi vs Kontainerisasi

Virtualisasi dan Containerization memungkinkan Anda menjalankan beberapa sistem operasi di dalam mesin host.

Virtualisasi berkaitan dengan pembuatan banyak sistem operasi dalam satu mesin host. Kontainerisasi di sisi lain akan membuat banyak wadah untuk setiap jenis aplikasi sesuai kebutuhan.

Angka: Apa Itu Big Data Analytics - Virtualisasi versus Containerization

Seperti yang bisa kita lihat dari gambar, perbedaan utamanya adalah ada beberapa Sistem Operasi Tamu dalam Virtualisasi yang tidak ada dalam Containerization. Bagian terbaik dari Containerization adalah sangat ringan dibandingkan dengan virtualisasi yang berat.

Sekarang, mari kita instal Docker.

Instal Docker:

Saya akan menginstal Docker di mesin Ubuntu 17.10 saya. Berikut adalah langkah-langkah untuk menginstal Docker:

  1. Instal Paket yang diperlukan
  2. Siapkan repositori Docker
  3. Instal Docker Di Ubuntu

1. Instal Paket yang Diperlukan:

Ada paket tertentu yang Anda perlukan di sistem Anda untuk menginstal Docker. Jalankan perintah di bawah ini untuk menginstal paket-paket itu.

sudo apt-get install curl apt-transport-https ca-certificate software-properties-common

2. Siapkan Repositori Docker:

Sekarang, impor kunci GPG resmi Dockers untuk memverifikasi tanda tangan paket sebelum menginstalnya dengan apt-get. Jalankan perintah di bawah ini di terminal:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

Sekarang, tambahkan repositori Docker di sistem Ubuntu Anda yang berisi paket Docker termasuk dependensinya, untuk itu jalankan perintah di bawah ini:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stable'

3. Instal Docker Di Ubuntu:

Sekarang Anda perlu memutakhirkan apt index dan menginstal edisi komunitas Docker, untuk itu jalankan perintah di bawah ini:

sudo apt-get pembaruan sudo apt-get install docker-ce

konversi biner ke java desimal

Selamat! Anda telah berhasil menginstal Docker. Juga, lihat beberapa yang biasa digunakan Perintah Docker .

Sekarang mari kita lihat beberapa konsep Docker yang penting.

Dockerfile, Gambar Docker, dan Container Docker:

  1. Gambar Docker dibuat dengan urutan perintah yang ditulis dalam file yang disebut Dockerfile.
  2. Ketika Dockerfile ini dijalankan menggunakan perintah buruh pelabuhan, hasilnya menjadi Image Docker dengan sebuah nama.
  3. Ketika Image ini dijalankan oleh perintah 'docker run', ia akan dengan sendirinya memulai aplikasi atau layanan apa pun yang harus dijalankannya.

Docker Hub:

Docker Hub seperti GitHub untuk Gambar Docker. Ini pada dasarnya adalah registri cloud tempat Anda dapat menemukan Gambar Docker yang diunggah oleh komunitas yang berbeda, Anda juga dapat mengembangkan gambar Anda sendiri dan mengunggahnya di Docker Hub, tetapi pertama-tama, Anda perlu membuat akun di DockerHub.

Arsitektur Docker:

Ini terdiri dari Mesin Docker yang merupakan aplikasi klien-server dengan tiga komponen utama:

  1. Sebuah server yang merupakan jenis program yang berjalan lama disebut proses daemon (perintah buruh pelabuhan).
  2. REST API yang menentukan antarmuka yang dapat digunakan program untuk berbicara dengan daemon dan menginstruksikan apa yang harus dilakukan.
  3. Klien antarmuka baris perintah (CLI) (perintah buruh pelabuhan).
  4. CLI menggunakan Docker REST API untuk mengontrol atau berinteraksi dengan daemon Docker melalui skrip atau perintah CLI langsung. Banyak aplikasi Docker lainnya menggunakan API dan CLI yang mendasarinya.

Lihat blog ini, untuk membaca lebih lanjut .

Terakhir di blog Tutorial Docker ini saya akan membahas tentang Docker Compose.

Docker Compose:

Docker Compose pada dasarnya digunakan untuk menjalankan beberapa Docker Containers sebagai satu server. Izinkan saya memberi Anda sebuah contoh:

Misalkan jika saya memiliki aplikasi yang membutuhkan WordPress, Maria DB dan PHP MyAdmin. Saya dapat membuat satu file yang akan memulai kedua kontainer sebagai layanan tanpa perlu memulai masing-masing secara terpisah. Ini sangat berguna terutama jika Anda memiliki arsitektur layanan mikro.

Lihat blog saya di Docker Container untuk memahami cara menjalankannya secara praktis.

Selain itu, Anda dapat membaca blog ini tentang bagaimana Anda dapat membuat aplikasi tumpukan rata-rata menggunakan Docker Compose.

Dengan ini, kita mengakhiri blog pertama Tutorial Docker tentang Pengantar Docker & Containerization.

Buka blog kami berikutnya di Docker:

Sekarang setelah Anda memahami apa itu DevOps, lihat kami oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Kursus Pelatihan Sertifikasi Edureka DevOps membantu pelajar mendapatkan keahlian dalam berbagai proses dan alat DevOps seperti Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack, dan GIT untuk mengotomatiskan beberapa langkah di SDLC.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar dan kami akan menghubungi Anda kembali.