Traffine I/O

Bahasa Indonesia

2022-06-05

Gambar dan Kontainer Docker

Apa itu Kontainer dan Gambar Docker

Gambar Docker adalah fondasi Kontainer Docker. Gambar adalah paket eksekusi mandiri yang ringan dan mencakup segala sesuatu yang diperlukan untuk menjalankan sebuah perangkat lunak, termasuk kode, runtime, alat sistem, perpustakaan, dan pengaturan. Kontainer Docker adalah instance runtime dari Gambar Docker, memberikan lingkungan terisolasi dan konsisten di mana aplikasi dapat berjalan.

Kontainer dan Gambar Docker menawarkan beberapa keuntungan, termasuk:

  • Portabilitas
    Aplikasi berjalan konsisten di berbagai platform, memastikan proses implementasi yang lancar.

  • Efisiensi resource
    Kontainer ringan, berbagi resource sistem host, sehingga mengurangi biaya infrastruktur.

  • Skalabilitas
    Aplikasi dapat dengan cepat diskalakan sesuai permintaan.

  • Kontrol versi
    Gambar dapat diberi versi dan digulirkan kembali ke versi sebelumnya jika diperlukan.

  • Kolaborasi
    Tim dapat berbagi dan berkolaborasi pada Gambar Docker menggunakan registry seperti Docker Hub.

Terminologi Kunci

  • Dockerfile
    Script yang berisi instruksi untuk membuat Gambar Docker.

  • Gambar Docker
    Paket eksekusi mandiri yang ringan dan mencakup segala sesuatu yang diperlukan untuk menjalankan sebuah perangkat lunak.

  • Kontainer Docker
    Instance runtime dari Gambar Docker, memberikan lingkungan terisolasi untuk aplikasi berjalan.

  • Docker Registry
    Layanan terpusat untuk berbagi dan mendistribusikan Gambar Docker.

  • Docker Hub
    Registry publik default untuk Gambar Docker, yang dipelihara oleh Docker Inc.

  • Data Volume
    Mekanisme untuk mempertahankan data yang dihasilkan dan digunakan oleh Kontainer Docker.

Gambar Docker

Gambar Docker adalah fondasi Kontainer Docker. Di bab ini, saya akan membahas pembuatan dan manajemen Gambar Docker, serta cara bekerja dengan registry Gambar Docker.

Membuat Gambar Docker

Untuk membuat Gambar Docker, Anda perlu menentukan Dockerfile dan kemudian membangun gambar menggunakan perintah Docker.

Dockerfile

Dockerfile adalah script yang berisi instruksi untuk membuat Gambar Docker. Dimulai dengan gambar dasar, diikuti dengan berbagai perintah untuk mengkonfigurasi lingkungan, menginstal dependensi, dan menyalin file aplikasi. Berikut adalah contoh Dockerfile sederhana:

Dockerfile
# Gunakan gambar dasar Python resmi
FROM python:3.8

# Atur direktori kerja
WORKDIR /app

# Salin file requirements dan instal dependensi
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Salin kode aplikasi
COPY . .

# Ekspos port aplikasi
EXPOSE 8080

# Jalankan aplikasi
CMD ["python", "app.py"]

Membangun Gambar Docker

Setelah membuat Dockerfile, Anda dapat membangun Gambar Docker dengan menjalankan perintah berikut di direktori yang sama dengan Dockerfile:

bash
$ docker build -t my_app:1.0 .

Perintah ini akan membuat Gambar Docker bernama my_app dengan tag 1.0.

Mengelola Gambar Docker

Setelah membangun Gambar Docker, Anda perlu mengelolanya. Tugas-tugas umum termasuk mencantumkan gambar, menghapus gambar, dan menandai gambar.

Mencantumkan Gambar

Untuk mencantumkan semua Gambar Docker yang tersedia di sistem Anda, jalankan perintah berikut:

bash
$ docker images

Menghapus Gambar

Untuk menghapus Gambar Docker, gunakan perintah berikut:

bash
$ docker rmi <IMAGE_ID>

Ganti <IMAGE_ID> dengan ID aktual gambar yang ingin Anda hapus.

Registry Gambar Docker

Registry Gambar Docker adalah layanan terpusat untuk berbagi dan mendistribusikan Gambar Docker. Ada registry publik dan pribadi yang tersedia.

Docker Hub

Docker Hub adalah registry publik default untuk Gambar Docker, yang dipelihara oleh Docker Inc. Anda dapat menggunakan Docker Hub untuk mencari gambar yang sudah ada, menyimpan gambar Anda sendiri, dan berkolaborasi dengan pengembang lain. Untuk memasukkan gambar ke Docker Hub, Anda perlu masuk terlebih dahulu:

bash
$ docker login

Kemudian, tandai gambar Anda dengan nama pengguna Docker Hub dan nama repositori yang diinginkan:

bash
$ docker tag my_app:1.0 <USERNAME>/my_app:1.0

Terakhir, unggah gambar ke Docker Hub:

bash
$ docker push <USERNAME>/my_app:1.0

Registry Pribadi

Selain Docker Hub, Anda juga dapat menggunakan registry pribadi untuk menyimpan dan mendistribusikan Gambar Docker Anda. Registry pribadi dapat dihosting di dalam atau di cloud, menyediakan opsi keamanan dan kontrol akses tambahan. Layanan registry pribadi populer meliputi Google Container Registry, Amazon Elastic Container Registry, dan Azure Container Registry.

Untuk memasukkan gambar ke registry pribadi, pertama tandai gambar dengan URL registry:

bash
$ docker tag my_app:1.0 <REGISTRY_URL>/my_app:1.0

Kemudian, masuk ke registry pribadi (jika diperlukan) dan unggah gambar:

bash
$ docker login <REGISTRY_URL>
$ docker push <REGISTRY_URL>/my_app:1.0

Kontainer Docker

Mari kita jelajahi Kontainer Docker, yang merupakan instance runtime dari Gambar Docker. Di bab ini, saya akan membahas pembuatan, manajemen, dan cara bekerja dengan jaringan dan penyimpanan data pada Kontainer Docker.

Membuat Kontainer Docker

Kontainer Docker dapat dibuat menggunakan perintah docker run, dengan berbagai opsi tersedia untuk menyesuaikan perilaku kontainer.

Menjalankan Kontainer

Untuk membuat dan memulai Kontainer Docker baru dari gambar, gunakan perintah berikut:

bash
$ docker run -d --name my_container -p 8080:8080 my_app:1.0

Perintah ini membuat kontainer bernama my_container berdasarkan gambar my_app:1.0. Flag -d menjalankan kontainer dalam mode terpisah (background), dan flag -p memetakan port host 8080 ke port kontainer 8080.

Kontainer Interaktif

Untuk menjalankan kontainer dalam mode interaktif (berguna untuk debugging dan eksplorasi), gunakan flag -it:

bash
$ docker run -it --name my_container my_app:1.0 /bin/bash

Perintah ini memulai kontainer baru dan membuka shell Bash di dalamnya, memungkinkan Anda berinteraksi dengan sistem file dan proses kontainer.

Mengelola Kontainer Docker

Setelah membuat Kontainer Docker, Anda perlu mengelolanya. Tugas-tugas umum termasuk mencantumkan kontainer, menghentikan kontainer, dan menghapus kontainer.

Mencantumkan Kontainer

Untuk mencantumkan semua Kontainer Docker yang sedang berjalan di sistem Anda, gunakan perintah berikut:

bash
$ docker ps

Untuk mencantumkan semua kontainer, termasuk yang berhenti, tambahkan flag -a:

bash
$ docker ps -a

Menghentikan Kontainer

Untuk menghentikan Kontainer Docker yang sedang berjalan, gunakan perintah berikut:

bash
$ docker stop <CONTAINER_ID>

Ganti <CONTAINER_ID> dengan ID aktual kontainer yang ingin Anda hentikan.

Menghapus Kontainer

Untuk menghapus Kontainer Docker yang berhenti, gunakan perintah berikut:

bash
$ docker rm <CONTAINER_ID>

Ganti <CONTAINER_ID> dengan ID aktual kontainer yang ingin Anda hapus.

Jaringan dan Penyimpanan Data

Kontainer Docker dapat berkomunikasi satu sama lain dan dengan sistem host melalui berbagai opsi jaringan. Selain itu, data yang dihasilkan oleh kontainer dapat dipertahankan menggunakan volume data.

Jaringan Kontainer

Docker menyediakan beberapa opsi jaringan, termasuk:

  • Bridge
    Jenis jaringan default, menyediakan jaringan pribadi antara kontainer di host yang sama.

  • Host
    Menghapus isolasi jaringan, memungkinkan kontainer menggunakan jaringan host secara langsung.

  • Overlay
    Memungkinkan kontainer berkomunikasi melintasi beberapa host Docker dalam sebuah swarm.

  • Macvlan
    Menetapkan alamat MAC ke kontainer, membuatnya muncul sebagai perangkat fisik yang terpisah di jaringan.

Untuk membuat jaringan kustom, gunakan perintah berikut:

bash
$ docker network create --driver bridge my_network

Untuk menghubungkan kontainer ke jaringan kustom, gunakan flag --net saat menjalankan kontainer:

bash
$ docker run -d --name my_container --net my_network my_app:1.0

Volume Data

Volume data digunakan untuk mempertahankan data yang dihasilkan oleh dan digunakan oleh Kontainer Docker. Volume dikelola oleh Docker dan dapat dibagi antara kontainer.

Untuk membuat volume data baru, gunakan perintah berikut:

bash
$ docker volume create my_data

Untuk memasang volume data ke kontainer, gunakan flag -v saat menjalankan kontainer:

bash
$ docker run -d --name my_container -v my_data:/data

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!