Mempelajari Docker Bagian 1: Dasar-Dasarnya

Teknologi kontainerisasi aplikasi banyak digunakan dalam pengembangan perangkat lunak dan analisis data. Teknologi ini membantu membuat aplikasi lebih aman, membuatnya lebih mudah untuk digunakan, dan meningkatkan skalabilitasnya. Pertumbuhan dan perkembangan teknologi kontainerisasi dapat dianggap sebagai salah satu tren paling penting di zaman kita.

Docker adalah platform yang dirancang untuk mengembangkan, menyebarkan, dan menjalankan aplikasi dalam wadah. Kata "Docker" baru-baru ini menjadi sedikit sinonim untuk kata "containerisasi". Dan jika Anda belum menggunakan Docker, tetapi pada saat yang sama Anda sedang bekerja atau akan bekerja di bidang pengembangan aplikasi atau analisis data, maka Docker adalah apa yang Anda pasti akan temui di masa depan.

β†’ Bagian 1: dasar-dasarnya
β†’ Bagian 2: istilah dan konsep
β†’ Bagian 3: File Dockerfile
β†’ Bagian 4: mengurangi ukuran gambar dan mempercepat perakitannya
β†’ Bagian 5: tim
β†’ Bagian 6: bekerja dengan data

gambar

Jika Anda belum tahu apa itu Docker, sekarang Anda memiliki kesempatan untuk mengambil langkah pertama untuk memahami platform ini. Yakni, setelah menguasai materi ini, Anda akan memahami dasar-dasar Docker dan secara bersamaan menyiapkan pizza.

Metafora dan Docker


Kami terus-menerus dihadapkan dengan metafora. Jika Anda melihat ke dalam kamus Ozhegov, ternyata metafornya adalah "perbandingan figuratif yang tersembunyi, menyamakan satu objek, fenomena dengan yang lain". Metafora membantu kita memahami esensi dari fenomena baru bagi kita. Misalnya, wadah virtual dapat dibandingkan dengan wadah plastik biasa. Perbandingan semacam itu, dengan membandingkan sifat-sifat wadah biasa yang sudah kita ketahui dengan sifat-sifat wadah virtual, akan membantu untuk mengenal mereka terlebih dahulu dan kemudian memahami esensinya.


Wadah

Seperti yang Anda pahami, kami akan memulai percakapan tentang Docker dengan konsep "wadah".

Wadah


Seperti wadah plastik biasa, wadah Docker memiliki karakteristik sebagai berikut:

  1. Anda dapat menyimpan sesuatu di dalamnya. Sesuatu bisa di dalam wadah atau di luar.
  2. Itu bisa dilakukan. Anda dapat menggunakan wadah Docker di komputer lokal Anda, di komputer kolega, di server penyedia layanan cloud (seperti AWS). Ini membuat wadah Docker mirip dengan wadah biasa, di mana, misalnya, mereka mengangkut berbagai pernak-pernik berbentuk hati ketika pindah ke rumah baru.
  3. Sangat mudah untuk meletakkan sesuatu di wadah dan nyaman untuk mengambil sesuatu darinya. Wadah biasa memiliki penutup pada kait, yang harus dilepas untuk memasukkan sesuatu ke dalam wadah atau mengeluarkan sesuatu dari itu. Wadah Docker memiliki sesuatu yang mirip yang mewakili antarmuka mereka, yaitu mekanisme yang memungkinkan mereka untuk berinteraksi dengan dunia luar. Misalnya, sebuah wadah memiliki port yang dapat dibuka sehingga aplikasi yang berjalan di dalam wadah dapat diakses dari browser. Anda juga dapat bekerja dengan wadah menggunakan alat baris perintah.
  4. Jika Anda membutuhkan wadah, Anda dapat memesannya di toko online. Wadah kosong dapat dibeli, misalnya, di situs web Amazon. Wadah datang ke toko ini dari produsen yang membuatnya dalam jumlah besar menggunakan cetakan. Dalam hal wadah Docker, apa yang dapat dibandingkan dengan cetakan, yaitu gambar wadah, disimpan dalam repositori khusus. Jika Anda membutuhkan wadah tertentu, Anda dapat mengunduh gambar yang sesuai dari repositori, dan menggunakannya, buat wadah ini.

Tentu saja, wadah plastik, tidak seperti wadah Docker, tidak ada yang akan mengirim Anda secara gratis, dan ketika Anda menerimanya, mereka akan kosong. Namun selalu ada sesuatu yang menarik dalam wadah Docker.

Organisme hidup


Pendekatan lain untuk berpikir tentang wadah Docker adalah membandingkannya dengan contoh organisme hidup. "Instance" adalah sesuatu yang ada dalam beberapa bentuk. Ini bukan hanya kode. Ini adalah kode yang menyebabkan keberadaan sesuatu yang lebih besar dari dirinya sendiri, sesuatu, secara kiasan, hidup. Seperti organisme hidup lainnya, wadah lahir, hidup dan mati.


Monster dipanggil untuk hidup

Wadah Docker adalah gambar Docker yang semarak.

Perangkat lunak


Wadah buruh pelabuhan dapat dibandingkan tidak hanya dengan wadah biasa atau dengan organisme hidup. Mereka dapat dibandingkan dengan program. Bagaimanapun, wadah adalah program. Dan, pada tingkat dasar, sebuah wadah adalah sekumpulan instruksi yang berjalan pada sebuah prosesor, memproses beberapa jenis data.


Wadah adalah program

Saat runtime, wadah Docker biasanya menjalankan beberapa jenis program di dalamnya. Dia melakukan tindakan tertentu dalam wadah, yaitu, dia melakukan sesuatu yang bermanfaat.

Misalnya, kode yang berjalan dalam wadah Docker mungkin telah mengirim teks yang Anda baca ke komputer Anda. Sangat mungkin bahwa kode yang berjalan di wadah Docker menerima perintah suara yang Anda berikan ke Amazon Alexa dan mengubahnya menjadi instruksi untuk beberapa program lain yang berjalan di wadah lain.

Menggunakan Docker, Anda dapat menjalankan beberapa wadah di komputer yang sama secara bersamaan. Dan, seperti program lainnya, wadah Docker dapat dimulai, dihentikan, dihapus. Anda dapat memeriksa isinya dan membuatnya.

Konsep Docker


Machines Mesin virtual


Pendahulu kontainer Docker adalah mesin virtual. Mesin virtual, seperti wadah, mengisolasi aplikasi dan ketergantungannya dari lingkungan eksternal. Namun, wadah Docker menawarkan keunggulan dibandingkan mesin virtual. Jadi, mereka mengkonsumsi lebih sedikit sumber daya, mereka sangat mudah untuk ditransfer, mereka memulai lebih cepat dan datang ke keadaan sehat. Pada artikel ini Anda dapat menemukan perbandingan terperinci dari wadah dan mesin virtual.

▍ Gambar kontainer Docker


Kami sudah bicara tentang "gambar" di atas. Apa ini Pertanyaan yang bagus Apa yang Docker sebut sebagai "gambar" atau, dalam bahasa Inggris, "gambar" sama sekali tidak sama dengan, misalnya, fotografi (ini adalah salah satu arti dari kata "gambar").


Gambar Docker Bukan Foto

Gambar wadah Docker dapat dibandingkan dengan gambar, dengan pemotong kue, atau dengan cetakan untuk membuat produk plastik. Gambar adalah templat yang tidak berubah yang digunakan untuk membuat wadah yang sama.


Wadah buruh pelabuhan terlihat seperti pemotong kue

Gambar wadah Docker berisi gambar sistem operasi dasar, kode aplikasi, perpustakaan tempat bergantungnya. Semua ini diatur sebagai satu kesatuan, berdasarkan Anda dapat membuat wadah.

▍ Dockerfile


Dockerfile berisi sekumpulan instruksi, yang mana Docker akan mengumpulkan gambar kontainer. File ini berisi deskripsi gambar dasar, yang akan menjadi lapisan gambar asli. Di antara gambar dasar resmi yang populer, python , ubuntu , alpine dapat dicatat.

Anda dapat menambahkan lapisan tambahan ke gambar wadah, di atas gambar dasar. Ini dilakukan sesuai dengan instruksi dari Dockerfile . Misalnya, jika Dockerfile mendeskripsikan gambar yang Anda rencanakan untuk digunakan untuk menyelesaikan tugas pembelajaran mesin, maka itu mungkin berisi instruksi untuk menyertakan perpustakaan NumPy, Pandas, dan Scikit-learn di lapisan tengah gambar seperti itu.

Dan akhirnya, gambar dapat berisi, di atas semua yang lain, lapisan tipis lain, data yang disimpan di dalamnya dapat diubah. Ini adalah lapisan volume kecil yang berisi program yang Anda rencanakan untuk dijalankan dalam wadah.

▍ Wadah Docker


Untuk memulai wadah, kita perlu, pertama, gambar wadah, dan kedua, lingkungan di mana Docker diinstal, dapat memahami perintah form docker run image_name . Perintah ini menciptakan sebuah wadah dari gambar dan meluncurkannya.

▍ Tempat penyimpanan kontainer


Jika Anda ingin memungkinkan orang lain membuat wadah berdasarkan gambar Anda, Anda dapat mengirim gambar ini ke cloud. Repositori terbesar seperti itu adalah repositori Docker Hub . Ini digunakan saat bekerja dengan Docker secara default.

Kami sudah membahas banyak hal. Saatnya menggabungkan semuanya dan membandingkan pekerjaan dengan wadah Docker dengan pizza.

Memasak dengan Docker



Pizza siap adalah wadah

  • Resep pizza adalah Dockerfile . Dia memberi tahu kita apa yang perlu dilakukan untuk mencapai tujuan, yaitu mendapatkan wadah yang berfungsi.
  • Bahan-bahan yang membentuk pizza adalah lapisan-lapisan gambar wadah. Untuk pizza kami, Anda akan membutuhkan kue, saus, dan keju.

Jika Anda meletakkan resep dan bahan-bahan di atas meja, ternyata di satu tempat semua yang Anda butuhkan dikumpulkan untuk memasak pizza. Semua ini dapat dibandingkan dengan gambar wadah Docker.
Dari resep ( Dockerfile ) Anda dapat mengetahui urutan tindakan yang perlu Anda lakukan untuk memasak pizza:

  • Korzh siap digunakan, kami tidak mengubahnya. Itu bisa dibandingkan dengan gambar dasar OS Ubuntu. Ini adalah lapisan bawah gambar, ditambahkan ke gambar terlebih dahulu.
  • Kemudian keju ditambahkan ke kue. Ini seperti menambahkan lapisan kedua ke gambar sebagai perpustakaan eksternal seperti NumPy.
  • Lalu, di atas keju, tambahkan saus. Ini adalah kode aplikasi yang harus dijalankan dalam wadah.

Sekarang saatnya memasak pizza di dalam oven.


Oven adalah platform Docker

Oven tempat pizza dimasak menyerupai platform Docker. Oven dipasang di dapur, dengan bantuannya Anda bisa memasak makanan. Dengan cara yang sama, Docker diinstal pada komputer untuk "memasak" wadah.

Oven, jika listrik, dihidupkan dengan memutar kenop pengontrol suhu. docker run image_name adalah sesuatu seperti pengontrol suhu, "rotasi" yang menyebabkan sistem untuk membuat dan meluncurkan wadah.

Pizza siap saji - ini adalah wadah Docker.

Dan makan pizza berarti menggunakan aplikasi yang berjalan di wadah.

Seperti membuat pizza, mempersiapkan wadah Docker membutuhkan waktu, tetapi di final, dan dalam kedua kasus, ternyata sesuatu yang lezat.

Ringkasan


Di sini, pada level konseptual, kami membahas dasar-dasar Docker. Kami berharap bahwa perbandingan yang disajikan di sini telah membantu Anda memahami apa itu Docker dan merasakan nilai metafora dalam menguasai teknologi baru.

Pembaca yang budiman! Posting ini adalah terjemahan dari artikel pertama dalam seri tutorial Docker. Menurut penulis, total 5 materi tersebut direncanakan akan dirilis. Bagian kedua , ketiga dan keempat sudah siap. Beritahu kami, apakah perlu menerjemahkan artikel-artikel berikut dalam seri ini?

Source: https://habr.com/ru/post/id438796/


All Articles