Ketahui Cara Membuat Container Docker Dengan Membaca Artikel Ini
Docker merupakan tool yang mampu membantu menyederhanakan proses deployment bagi developer yang sedang menciptakan aplikasi atau layanan yang berjalan pada beberapa sistem operasi. Dengan cara menciptakan container Docker, Anda mampu meluncurkan beberapa aplikasi atau layanan menggunakan gampang dalam sistem misalnya VPS hosting atau dedicated machine.
Docker juga ringan, lebih gampang digunakan, dan mempunyai performa yang lebih baik dibandingkan menggunakan impian machine. Container Docker mempunyai seluruh dependensi yang diharapkan dalam menjalankan pelaksanaan sebagai akibatnya meminimalkan kasus kompatibilitas. Penting buat menciptakan container Docker dari awal untuk proyek pengembangan apa pun yang diluncurkan memakai perangkat lunak open-source ini.
Nah, pada artikel ini akan menyebutkan cara menciptakan container Docker, memandu Anda memahami keuntungannya pada pengembangan perangkat lunak, dan tips terbaik untuk menggunakannya.
Apa Itu Container Docker?
Container Docker adalah paket perangkat lunak mandiri yang berisi semua dependensi yang diperlukan untuk menjalankan aplikasi tertentu di berbagai sistem operasi. Selama penggunaan, image Docker menentukan semua instruksi konfigurasi untuk memulai atau menghentikan container. Container baru dibuat setiap kali pengguna menjalankan image.
Apa Fungsi Container Docker?
Container Docker adalah solusi yang sangat bermanfaat bagi para developer pada saat ini. Dengan adanya Container Docker, aplikasi mampu berjalan pada sistem operasi yang sama, akan tetapi terpisah dari sistem operasi dan container lain. Fitur ini memastikan performa yang konsisten pada lingkungan pengembangan dan staging.
Untuk bisnis, container Docker membantu meningkatkan kecepatan deployment dan memaksimalkan pemanfaatan resource sistem. Dari segi resource, penggunaan container Docker membutuhkan memori yang jauh lebih rendah daripada impian machine. Selain itu, sifatnya yang portabel memungkinkan migrasi dan penyesuaian pada aplikasi legacy.
Singkatnya, Anda dapat dengan mudah mengoptimalkan proses pengembangan, berhemat waktu, dan memaksimalkan peluang keberhasilan proyek pengembangan aplikasi yang hemat biaya dengan cara menciptakan container Docker.
Cara Membuat Container Docker
Tutorial ini menggunakan VPS (Virtual Private Server) dengan sistem operasi Ubuntu 22.04. Pertama, pastikan Docker terinstal di server Anda. Apabila belum memiliki, lakukan penginstalan terlebih dahulu. Setelah penginstalan selesai, ikuti langkah-langkah berikut untuk membuat container Docker dan menjalankan aplikasi Anda di lingkungan yang terisolasi.
1. Buat Image Docker
Image Docker merupakan blueprint untuk sebuah container. Image ini menyimpan semua kode, pustaka, dan dependensi yang diperlukan untuk menjalankan aplikasi Anda. Saat Anda menjalankan image Docker (yang dapat bersifat pribadi atau dibagikan secara publik pada platform seperti Docker Hub), image tersebut diubah menjadi container Docker.
Meskipun Anda dapat membuat image Docker baru, akan lebih mudah untuk mengembangkan menggunakan image dasar, karena Docker Hub menyediakan banyak image dasar siap pakai.
Pertama, masuk ke VPS Anda menggunakan client SSH seperti PuTTY. Selanjutnya, daftarkan semua image Docker di sistem Anda menggunakan perintah Linux berikut:
sudo docker images
Untuk menampilkan informasi detail tentang image Docker yang ada, gunakan perintah berikut:
sudo docker images --help
Gunakan opsi -q dari command prompt untuk mencantumkan ID numerik image yang tersedia di sistem:
sudo docker images -q
Untuk mencantumkan semua image tidak berhubungan (non-dangling) yangditandai atau direferensikan oleh container baru, gunakan command berikut:
sudo docker images -f dangling=false
Dalam tutorial ini, kita akan menarik gambar berbasis MySQL. Kunjungi halaman masing-masing pada image untuk informasi lengkap. Jalankan perintah berikut untuk mengimpor gambar baru ke direktori saat ini. Jangan lupa ganti <image name or image id> dengan nama atau ID image pilihan Anda:
docker pull <image name or image id>
Alternatifnya, Anda dapat membuat image Docker menggunakan Easypanel. Alat ini menyediakan GUI yang menyederhanakan pengelolaan image Docker, terutama bagi pengguna yang tidak terbiasa dengan operasi command line.
EasyPanel memungkinkan Anda membuat image Docker dengan mudah untuk aplikasi yang ditulis dalam berbagai bahasa pemrograman, termasuk Node.js, Ruby, Python, PHP, Go, dan Java. Alat ini mengotomatiskan banyak proses yang diperlukan untuk menciptakan lingkungan dan ketergantungan.
Anda dapat menggunakan templat berbasis Docker atau templat yang diinstal dengan EasyPanel. Bergantung pada keahlian dan kebutuhan proyek Anda, pilih salah satu dari dua metode, yakni Docker untuk sistem kontrol yang lebih komprehensif, atau EasyPanel yang lebih sederhana.
2. Menulis Dockerfile
Dockerfile adalah file teks yang memberitahu Docker bagaimana image dibuat. Dockerfile mencantumkan semua perintah Docker yang diperlukan untuk merakit image container. Dockerfiles memastikan bahwa image selalu dibuat dengan cara yang sama, membuat prosesnya lebih konsisten dan lebih mudah dikelola.
Berikut ini adalah contoh templat Dockerfile sederhana:
FROM ubuntu:latest WORKDIR /app COPY . . RUN apt-get update && apt-get install -y curl CMD ["curl", "https://www.example.com"]
Di Dockerfile, setiap command membuat lapisan baru di image Docker. Begini cara kerjanya, seperti yang ditunjukkan pada contoh:
- FROM ubuntu:latest ‒ Perintah ini mengambil parent image Ubuntu terbaru dan menetapkannya sebagai tingkat dasar. Lapisan selanjutnya akan dibuat berdasarkan ini.
- WORKDIR /app ‒ Mengatur direktori kerja container dan membuat lapisan baru untuk dijadikan konteks perintah berikutnya.
- COPY . . ‒ Salin file lokal ke folder yang sama dengan container untuk membuat lapisan tambahan file proyek.
- RUN apt-get update && apt-get install -y curl ‒ Command run Docker menginstal cURL ke dalam container dan menambahkan level baru ke daftar paket yang diperbarui dan paket cURL yang diinstal.
- CMD [“curl”, “https://www.domain.com”] ‒ Menetapkan perintah default untuk menjalankan aplikasi saat container dimulai.
Perubahan yang harus dilakukan saat container sedang berjalan, seperti menambah atau memodifikasi file, yang ditulis ke semua lapisan yang dapat ditulis. Ini memungkinkan Anda melakukan penyesuaian sementara tanpa mempengaruhi iamge dasar.
Tips Bermanfaat
Jika Anda sudah menggunakan image siap pakai dari Docker Hub, Anda dapat memilih apakah akan membuat Dockerfile. Namun, jika Anda perlu menyesuaikan atau menyempurnakan image, Anda memerlukan file ini.
3. Buat Container Docker
Saat Anda membuat Dockerfile baru, buka direktori yang sama dengan file tersebut dan jalankan perintah Docker build untuk memulai proses pembuatan image baru. Jangan lupa ganti opsi <image name or image id> tersebut dengan nama tag Anda.
docker build -t <image name or image id>
Mulai container baru dari image yang baru saja Anda buat menggunakan perintah run Docker:
docker run <image name or image id>
Atau jalankan image siap pakai yang diimpor dari Docker Hub. Mari kita gunakan image MySQL yang kita peroleh sebelumnya:
docker run mysql
Layering image yang efisien sangat penting untuk mengoptimalkan waktu pembuatan dan penggunaan sumber daya. Setiap command di Dockerfile membuat lapisan baru yang di-cache Docker. Saat Anda membuat ulang image, Docker menggunakan kembali lapisan yang tidak diubah untuk mempercepat proses pembuatan.
Selain itu, layering yang efisien mengurangi ukuran image, memungkinkannya diakses, mengirimkan (push), atau meluncurkannya (deploy). Pendekatan ini sangat penting bagi perusahaan yang mengandalkan penerapan cepat agar tetap berada di depan pesaing mereka.
4. Menjalankan dan Mengelola Container
Setelah membuat image container, jalankan menggunakan perintah Docker run. Ganti <container name> dengan nama pilihan Anda. Di sini, MySQL Bash menentukan container yang akan dijalankan.
docker run --name <container name> -it mysql bash
Gunakan command Docker ps dengan opsi -a untuk membuat daftar container yang sedang berjalan di sistem Anda. Untuk menjalankan dengan hak akses root, tambahkan sudo ke perintah.
docker ps -a
Untuk menampilkan proses teratas sebuah container, gunakan perintah Docker berikut:
docker top MyContainer
Gunakan opsi -p di samping command docker run, untuk memetakan port antara host dan container.
docker run -p host_port:container_port <image name>
Pemetaan port memaparkan aplikasi container secara eksternal dan membuatnya dapat diakses oleh host machine. Proses ini sangat penting untuk aplikasi yang terhubung ke server web, database, atau sistem eksternal.
Untuk menambah volume penyimpanan persisten, gunakan opsi -v:
docker run -v host_directory:container_directory <image name>
Menambahkan volume membuat container Anda lebih stabil, lebih mudah dikelola, dan meningkatkan kinerja. Data Anda dipertahankan meskipun penyiapan container Docker Anda dihentikan, dihapus, atau diperbarui. Selain itu, volume dapat dibagi antara beberapa container, menyederhanakan pengelolaan data dalam pengaturan multi-container.
Tips Bermanfaat
Gunakan perintah Docker CLI atau API Docker untuk mengelola volume.
Opsi -cpus dan -memory dapat digunakan untuk membatasi sumber daya seperti CPU dan memori. Contoh berikut membatasi CPU kontainer hingga 0,5 dan RAM hingga 500 MB.
docker run --cpus=0.5 --memory=500m <image name>
Untuk menghentikan container yang sedang berjalan, masukkan perintah berikut:
docker stop MyContainer
Perintah berikut menampilkan informasi tambahan seperti ID container, penggunaan CPU, dan penggunaan memori:
docker stats
Untuk menghentikan container Docker, ketik perintah berikut di command line:
docker kill MyContainer
Tips Terbaik untuk Membangun Container Docker
Berikut adalah beberapa tips terbaik untuk proses build Docker yang efisien.
Menjaga Container Tetap Ringan
Container yang lebih kecil bekerja lebih cepat, lebih efisien, dan lebih aman. Selain itu, ini lebih cepat dan lebih hemat resource, sehingga memungkinkan Anda memaksimalkan pemanfaatan hardware. Karena container ini memiliki komponen yang lebih sedikit, container ini juga mengurangi risiko serangan dan meningkatkan keamanan secara keseluruhan.
Ikuti tips berikut untuk membuat container Docker yang ringan:
- Pilihlah image dasar yang ringan ‒ Jika Anda memiliki beberapa image serupa, Anda dapat membuat image dasar dengan komponen bersama dan menggunakannya untuk membuat gambar Docker kustom.
- Menerapkan rendering multi-stage ‒ Hanya menyertakan komponen penting seperti artefak dan lingkungan pada image akhir.
- Hapus file yang tidak diperlukan ‒ Setelah menginstal paket, hapus image Docker, cache, dan file sementara yang tidak digunakan untuk mengoptimalkan kinerja aplikasi Docker.
- Gunakan command spesifik ‒ Perkecil lapisan image dengan menggabungkan command pada command line. Selain itu, hindari menginstal paket yang direkomendasikan atau tidak penting yang direkomendasikan.
Gunakan Image Resmi
Membangun image Docker menggunakan image resmi dari Docker Hub menjadikan proses container lebih aman, optimal, dan efisien. Gambar-gambar ini biasanya disesuaikan dengan kasus penggunaan tertentu dan memberikan titik awal yang efisien untuk mengembangkan aplikasi yang canggih dan efisien.
Demi alasan keamanan, image resmi menjalani pemeriksaan keamanan menyeluruh dan segala kerentanan segera ditambal. Selain itu, karena distribusinya yang luas, gambar resmi telah teruji dengan baik dan kompatibel dengan berbagai konfigurasi dan platform.
Membatasi Izin Container
Menjalankan kontainer dengan izin tambahan dapat menimbulkan risiko keamanan. Jika sebuah container disusupi saat dijalankan dengan akses root, peretas dapat memperoleh akses penuh ke sistem.
Untuk menjaga keamanan sistem, berikan izin yang diperlukan saja pada kontainer. Buat pengguna non-root dan gunakan untuk menjalankan aplikasi Anda di dalam container. Anda juga dapat menempatkan penampung dalam mode baca-saja untuk mencegah perubahan yang tidak diinginkan.
Melindungi Informasi Sensitif
Saat memulai container Docker, Anda dapat mengonfigurasi variabel lingkungan tergantung pada aplikasi atau layanan yang berjalan di dalam container. Variabel yang paling umum mencakup kredensial database, pengaturan aplikasi, dan rahasia otentikasi.
Variabel lingkungan memisahkan data sensitif dari kode dan gambar, menyembunyikannya dari pihak yang memiliki akses ke keduanya. Variabel lingkungan membuat konfigurasi lebih fleksibel karena Anda dapat dengan mudah mengubah data tanpa mengubah Dockerfile atau membangun kembali image.
Menggunakan Orkestrasi Container
Alat orkestrasi container seperti Docker Compose dan Kubernetes dapat menyederhanakan pengelolaan beberapa aplikasi container. Alat ini menyederhanakan penerapan dengan memungkinkan Anda memulai beberapa container dengan satu perintah. Misalnya, Anda dapat menggunakan Docker Compose untuk menginstal WordPress beserta semua komponen yang diperlukan seperti server web dan database.
Alat orkestrasi juga dapat secara otomatis menyesuaikan layanan sebagai respons terhadap peningkatan lalu lintas. Alat ini mendistribusikan dan mengelola lalu lintas jaringan masuk ke beberapa container untuk meningkatkan kinerja dan keandalan.
Kesimpulan
Docker adalah alat yang sangat berguna bagi developer dan perusahaan, menyediakan lingkungan yang konsisten, deployment yang efisien, dan pemanfaatan resource yang optimal. Mempelajari cara membuat container Docker akan membuat proses pengembangan Anda lebih efisien dan aman.
Jika Anda masih memiliki pertanyaan tentang cara membuat container Docker, silakan kirimkan pertanyaan tersebut di bagian komentar di bawah artikel ini.