Tutorial Docker untuk Pemula: Dasar-dasar, Architekstur, Wadah

โšก Ringkasan Cerdas

Docker adalah platform kontainerisasi yang mengemas aplikasi dan dependensinya ke dalam kontainer yang portabel dan ringan. Gambaran umum ini menjelaskan arsitektur Docker, instalasi pada UbuntuPerintah-perintah penting, dan bagaimana kontainer berbeda dari mesin virtual tradisional untuk pengiriman perangkat lunak yang lebih cepat.

  • ๐Ÿณ Kontainerisasi: Docker melakukan virtualisasi pada tingkat sistem operasi, sehingga kontainer berbagi kernel host dan menggunakan lebih sedikit sumber daya daripada mesin virtual.
  • ๐Ÿงฑ Architekstur: Mesin Docker (dockerd), image, registry, dan container membentuk arsitektur klien-server di balik setiap alur kerja Docker.
  • ๐Ÿ“ฆ Gambar dan Kontainer: Sebuah image adalah template yang hanya bisa dibaca, sedangkan sebuah container adalah salinan yang sedang berjalan, dan satu image dapat menjalankan banyak container.
  • ๏ธ Registri: Docker Hub menyimpan image publik dan privat, memberi Anda jutaan image siap pakai untuk diunduh dan dijalankan.
  • โš™๏ธ instalasi: On Ubuntu Anda menambahkan repositori Docker APT dan kunci GPG, lalu menginstal paket docker-ce dengan apt-get.
  • ๏ธ Perintah Inti: Kelola kontainer dengan perintah docker pull, run, start, stop, ps, stats, dan images dari baris perintah.

Tutorial Docker untuk pemula yang mencakup arsitektur, instalasi, dan lain-lain. Ubuntu, dan perintah kontainer dasar

Docker adalah salah satu platform kontainerisasi paling populer yang digunakan di era modern. DevOps dan alur kerja cloud. Tutorial Docker untuk pemula ini menjelaskan apa itu Docker, bagaimana arsitektur Docker bekerja, dan cara menginstal Docker di Ubuntu, dan perintah dasar yang digunakan untuk mengelola image dan container.

Apa itu Docker?

Buruh pelabuhan Docker adalah platform pengembangan perangkat lunak untuk virtualisasi yang memungkinkan beberapa sistem operasi berjalan pada host yang sama. Platform ini membantu Anda memisahkan infrastruktur dari aplikasi sehingga Anda dapat mengirimkan perangkat lunak dengan cepat. Tidak seperti hypervisor, yang digunakan untuk membuat mesin virtual (VM), Docker melakukan virtualisasi pada tingkat sistem menggunakan unit yang disebut kontainer Docker.

Kontainer Docker berjalan di atas sistem operasi host, seperti yang ditunjukkan pada gambar di bawah. Hal ini meningkatkan efisiensi dan keamanan. Anda juga dapat menjalankan lebih banyak kontainer daripada mesin virtual pada infrastruktur yang sama, karena kontainer menggunakan lebih sedikit sumber daya.

Virtualisasi di Docker vs Hypervisor
Virtualisasi di Docker vs Hypervisor

Tidak seperti VM, yang dapat berkomunikasi langsung dengan perangkat keras host (misalnya, adaptor Ethernet yang membuat lebih banyak adaptor virtual), kontainer Docker berjalan di lingkungan terisolasi di atas sistem operasi host. Bahkan jika host Anda menjalankan Windows, kamu bisa lari Linux gambar di dalam kontainer dengan bantuan Hyper-Vyang secara otomatis membuat VM kecil untuk memvirtualisasikan citra dasar.

Setelah Anda mengetahui apa itu Docker, mari kita lihat alasan utama mengapa tim memilihnya.

Mengapa menggunakan Docker?

Berikut adalah alasan-alasan utama untuk menggunakan Docker:

  • Docker adalah perangkat lunak yang digunakan untuk virtualisasi, memungkinkan banyak sistem operasi untuk dijalankan pada host yang sama.
  • Docker adalah aplikasi klien-server, yang berarti klien berkomunikasi dengan server.
  • Image Docker bertindak sebagai "kode sumber" untuk kontainer; Anda menggunakannya untuk membangunnya.
  • Docker mendukung dua jenis registry: publik dan privat.
  • Kontainer adalah unit pengorganisasian Docker. Sederhananya, sebuah image adalah template dan sebuah kontainer adalah salinan dari template tersebut, sehingga Anda dapat menjalankan beberapa kontainer dari image yang sama.

Manfaat-manfaat ini berasal dari cara Docker dirancang. Bagian berikut akan menguraikan arsitektur Docker dan komponen-komponen intinya.

Buruh pelabuhan Architekstur

Nah, dalam tutorial kontainer Docker ini, mari kita lihat komponen utama dari arsitektur Docker.

Buruh pelabuhan ArchiKomponen arsitektur: mesin, citra, registri, dan kontainer.

Buruh pelabuhan Architekstur

Mesin Docker

Docker adalah aplikasi klien-server, yang berarti kita memiliki klien yang meneruskan permintaan ke server. Daemon Docker, yang disebut dockerd, adalah mesin Docker yang mewakili server. Daemon dan klien dapat berjalan pada host yang sama atau host jarak jauh, dan mereka berkomunikasi melalui biner klien baris perintah dan aplikasi lengkap. API TENANG yang berinteraksi dengan dockerd.

Gambar buruh pelabuhan

Image Docker adalah "kode sumber" untuk kontainer kita; kita menggunakannya untuk membangun kontainer. Image dapat memiliki perangkat lunak yang sudah terinstal sebelumnya, yang mempercepat penyebaran. Image bersifat portabel, dan Anda dapat menggunakan image yang sudah ada atau membangun image sendiri.

Registri Docker

Docker menyimpan image yang kita buat di dalam registry. Ada registry publik dan pribadi. Docker memiliki registry publik yang disebut Hub Docker, di mana Anda juga dapat menyimpan gambar secara pribadi. Docker Hub memiliki jutaan gambar yang dapat Anda mulai gunakan segera.

Kontainer Docker

Kontainer adalah unit organisasi Docker dan salah satu konsep dasarnya. Ketika kita membuat image dan menjalankannya, kita menjalankannya di dalam sebuah kontainer. Analogi kontainer digunakan karena portabilitas perangkat lunak yang berjalan di dalamnya: Anda dapat memindahkan, "mengirim", memodifikasi, mengelola, membuat, atau menghancurkannya, sama seperti kapal kargo menangani kontainer sungguhan.

Secara sederhana, gambar adalah templat, dan wadah adalah salinan dari templat tersebut. Anda dapat memiliki beberapa wadah (salinan) dari gambar yang sama.

Interaksi antara berbagai komponen ini menunjukkan bagaimana teknologi kontainer Docker bekerja bersama. Perintah seperti `docker pull` dan `docker run`, yang akan kita bahas nanti, memungkinkan Anda untuk mengelola alur kerja ini.

Dengan mempertimbangkan arsitektur tersebut, mari kita instal Docker agar Anda dapat mencoba komponen-komponen ini sendiri.

Cara menginstal Docker di Linux/Ubuntu

Berikut adalah proses instalasi Docker langkah demi langkah di Linux/Ubuntu:

Langkah 1) Untuk menginstal Docker, Anda memerlukan paket DEB dari tim Docker. Pertama, beberapa prasyarat Ubuntu Paket-paket tersebut diperlukan. Gunakan perintah di bawah ini untuk menginstalnya.

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

*tanda โ€œ\โ€ tidak perlu digunakan pada baris baru, jika mau anda dapat menulis perintah tanpa menggunakan โ€œ\โ€ pada satu baris saja.

Langkah 2) Tambahkan kunci GPG resmi Docker dengan sidik jari. Gunakan perintah Docker di bawah ini untuk memasukkan kunci GPG.

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

Langkah 3) Selanjutnya, tambahkan repositori Docker APT menggunakan perintah di bawah ini.

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

Anda mungkin akan diminta untuk mengkonfirmasi bahwa Anda ingin menambahkan repositori dan menambahkan kunci GPG secara otomatis ke host Anda. Perintah lsb_release akan mengisi Ubuntu versi distribusi host Anda.

Langkah 4) Setelah menambahkan kunci GPG, perbarui sumber APT menggunakan perintah Docker di bawah ini.

$ sudo apt-get update

Sekarang Anda dapat menginstal paket Docker itu sendiri.

Langkah 5) Setelah sumber APT diperbarui, mulailah menginstal paket Docker pada Ubuntu menggunakan perintah Docker di bawah ini.

$ sudo apt-get install docker-ce

Perintah di atas menginstal Docker dan paket-paket lain yang dibutuhkan. Sebelum Docker 1.8.0, nama paketnya adalah lxc-docker, dan antara Docker 1.8 dan 1.13, nama paketnya adalah docker-engine.

CATATAN: Docker untuk Windows membutuhkan Windows 10 Pro atau Enterprise versi 14393, atau Windows Server 2016 RTM, untuk dijalankan.

Cara menggunakan Docker menggunakan Perintah Docker dasar

Berikut cara menggunakan Docker dengan beberapa perintah Docker dasar.

Perintah paling dasar yang harus Anda jalankan setelah menginstal Docker adalah `docker info`, seperti yang telah disebutkan sebelumnya.

$ sudo docker info

Anda akan mendapatkan hasil yang mirip dengan berikut ini.

Gunakan Docker dengan perintah Docker dasar, menampilkan output `docker info`.

Seperti yang ditunjukkan pada contoh Docker di atas, kita dapat melihat informasi tentang kontainer Docker: berapa banyak yang sedang berjalan, dijeda, atau dihentikan, dan berapa banyak image yang telah diunduh. Sekarang mari kita dapatkan image pertama kita.

$ sudo docker pull alpine

Dengan perintah ini, kita memberi tahu Docker untuk mengunduh image alpine, mengambilnya dari registry publik dalam versi terbaru, yang telah diatur secara default.

*alpine adalah image Docker minimal berbasis Alpine Linux dengan indeks paket lengkap dan hanya berukuran 5 MB.

Jika kita ingin menjalankan image sebagai container, kita menggunakan perintah berikut.

$ sudo docker run -i -t alpine /bin/bash

Menjalankan perintah tersebut akan membawa kita langsung ke terminal alpine. Flag -i menjaga STDIN tetap terbuka dari kontainer bahkan ketika Anda tidak terhubung ke dalamnya; input standar yang persisten ini adalah setengah dari apa yang Anda butuhkan untuk shell interaktif. Flag -t adalah setengah lainnya dan menginstruksikan Docker untuk menetapkan pseudo-tty ke kontainer. Bersama-sama, keduanya memberi kita shell interaktif di kontainer baru. Kita keluar dari kontainer dengan perintah exit sederhana.

Nah, dalam tutorial dasar Docker ini, kita bisa mencoba menjalankan sebuah Ubuntu gambar.

$ sudo docker run -it ubuntu /bin/bash

Perhatikan bahwa Docker memeriksa keberadaan image secara lokal, dan jika tidak ada, image akan ditarik dari pustaka image secara otomatis. Sekali lagi, kita memiliki shell interaktif yang berjalan. Kita juga dapat memberi nama kontainer saat menjalankannya.

$ sudo docker run โ€“-name our_container -it ubuntu /bin/bash

Kemudian kita keluar lagi. Kita juga dapat menjalankan kontainer yang sebelumnya telah kita buat tanpa shell interaktif.

$ sudo docker start container_name

Dan kita menghentikan kontainer dengan menulis docker stop container_name.

$ sudo docker stop container_name

Jika kita ingin melihat semua container yang sedang berjalan, kita cukup menjalankan perintah berikut.

$ docker ps

Untuk semua kontainer, kita menambahkan "-a" di akhir perintah yang sama, seperti docker ps -a. Perintah ini menampilkan ID kontainer, citra yang digunakan, kapan dibuat, status berjalan, port yang terbuka, dan nama yang dihasilkan secara acak untuk memudahkan pengelolaan.

Saat menjalankan kontainer, kita sering ingin mengetahui berapa banyak sumber daya yang digunakannya. Untuk tujuan itu, kita dapat menggunakan perintah berikut.

$ docker stats

Anda juga dapat melihat gambar mana yang telah Anda unduh secara lokal, beserta informasi tentang gambar-gambar tersebut.

$ sudo docker images

Perintah pada contoh Docker di atas menampilkan setiap image Docker dengan tag yang menunjukkan versi image, ID image yang unik, tanggal pembuatan, dan ukuran image.

Untuk memahami mengapa kontainer merupakan peningkatan yang signifikan, ada baiknya kita melihat bagaimana virtualisasi berevolusi.

Apa itu Virtualisasi?

Sebelumnya, penyebaran layanan sangat lambat dan menyulitkan. Pengembang akan menulis kode, dan kemudian tim operasional akan menyebarkannya pada mesin fisik, di mana mereka harus memperhatikan versi pustaka, patch, dan kompiler bahasa agar kode tersebut berfungsi. Jika ada bug atau kesalahan, proses akan dimulai dari awal lagi: pengembang akan memperbaiki masalah tersebut, dan tim operasional akan menyebarkannya kembali.

Situasi membaik dengan terciptanya hypervisor. Hypervisor menjalankan banyak sistem sekaligus. mesin virtual, atau VM, pada host yang sama, yang mungkin sedang berjalan atau dimatikan. VM sangat mengurangi waktu tunggu untuk menerapkan kode dan memperbaiki bug, tetapi yang benar-benar mengubah segalanya adalah kontainer Docker.

Popularitas Docker juga didorong oleh alat orkestrasi yang mengelola kontainer dalam skala besar, seperti KubernetesSebelum melanjutkan, berikut adalah referensi singkat tentang perintah Docker yang paling penting.

Perintah Docker Penting

Di bawah ini adalah perintah penting Docker:

perintah Deskripsi
info buruh pelabuhan Komando Informasi
tarik buruh pelabuhan Unduh gambar
jalankan buruh pelabuhan -i -t image_name /bin/bash Jalankan gambar sebagai wadah
buruh pelabuhan mulai our_container Mulai wadah
buruh pelabuhan menghentikan nama_kontainer Hentikan wadah
buruh pelabuhan ps Daftar semua kontainer yang sedang berjalan
statistik buruh pelabuhan Informasi kontainer
gambar buruh pelabuhan Daftar gambar yang diunduh
Pembersihan Docker Bunuh semua kontainer yang sedang berjalan.

Bacalah juga ini. Pertanyaan dan jawaban wawancara kerja Docker untuk lulusan baru maupun profesional berpengalaman.

Pertanyaan Umum Demo Slot

Kontainer Docker berbagi kernel sistem operasi host dan hanya mengisolasi aplikasi, sehingga ringan dan dapat dijalankan dalam hitungan detik. Mesin virtual menggabungkan sistem operasi tamu lengkap, yang membuatnya lebih besar, lebih lambat saat booting, dan lebih boros sumber daya.

Dockerfile adalah skrip teks biasa yang berisi instruksi seperti FROM, RUN, COPY, dan CMD. Docker membaca instruksi ini untuk membangun image secara otomatis. Setiap baris menambahkan lapisan, memungkinkan Anda mereproduksi lingkungan yang sama di mesin mana pun.

Docker Compose mendefinisikan dan menjalankan aplikasi multi-kontainer menggunakan satu file YAML. Anda mendeskripsikan setiap layanan, jaringan, dan volume sekali saja, kemudian memulai semuanya dengan perintah `docker compose up`. Ini ideal untuk pengembangan dan pengujian lokal layanan yang terhubung.

Docker membangun dan menjalankan kontainer individual, sementara Kubernetes Kubernetes mengatur banyak kontainer di seluruh klaster. Kubernetes menambahkan penskalaan otomatis, perbaikan mandiri, dan penyeimbangan beban. Dalam praktiknya, Docker mengemas aplikasi dan Kubernetes mengelolanya di lingkungan produksi.

Docker Engine gratis dan open source di bawah lisensi Apache 2.0. Docker Desktop gratis untuk penggunaan pribadi, pendidikan, dan usaha kecil, tetapi perusahaan yang lebih besar memerlukan langganan berbayar. Docker Hub menawarkan paket hosting image gratis dan berbayar.

Docker berjalan secara native di Linux dan didukung di Windows ke macOS melalui Docker Desktop. Pada Windows Baik untuk Mac maupun Linux, Docker menggunakan mesin virtual ringan untuk menjalankan kernel Linux yang dibutuhkan oleh kontainer. Sebagian besar image kontainer berbasis Linux.

Asisten AI menghasilkan Dockerfile, file docker-compose, dan perintah CLI dari petunjuk bahasa sederhana. Mereka juga membaca log build dan kesalahan kontainer, menjelaskan penyebabnya, dan menyarankan perbaikan. Selalu tinjau konfigurasi yang dihasilkan untuk memastikan tag gambar, jalur, dan keamanan yang benar sebelum menjalankannya.

Ya. Kopilot GitHub ChatGPT dapat membuat draf Dockerfile dan Compose dari komentar atau deskripsi singkat. Fitur ini mempercepat proses penulisan kode berulang (boilerplate), tetapi Anda harus memverifikasi image dasar, versi, dan praktik terbaik, karena cuplikan kode yang dihasilkan mungkin menggunakan pengaturan default yang sudah usang.

Ringkaslah postingan ini dengan: