Cara Membuat Container Docker + Perintahnya Lengkap

Docker adalah tool yang bisa membantu menyederhanakan proses deployment bagi developer yang sedang membangun aplikasi atau layanan yang berjalan di beberapa sistem operasi.

Dengan cara membuat container Docker, Anda bisa meluncurkan beberapa aplikasi atau layanan dengan mudah pada sistem seperti VPS hosting atau dedicated machine. Docker juga ringan, lebih mudah digunakan, dan memiliki performa yang lebih baik dibandingkan dengan virtual machine.

Container Docker memiliki semua dependensi yang diperlukan untuk menjalankan aplikasi sehingga meminimalkan masalah kompatibilitas. Penting untuk membuat container Docker dari awal untuk proyek pengembangan apa pun yang diluncurkan menggunakan software open-source ini.

Nah, tutorial ini akan menjelaskan cara membuat container Docker, memandu Anda memahami manfaatnya dalam pengembangan software, serta tips terbaik untuk menggunakannya.

Apa Itu Container Docker?

Container Docker adalah paket software mandiri yang memuat semua dependensi yang diperlukan untuk menjalankan aplikasi tertentu pada berbagai sistem operasi.

Dalam penggunaannya, image Docker akan menentukan semua instruksi konfigurasi untuk memulai atau menghentikan container. Setiap kali pengguna menjalankan image, container baru akan dibuat.

Apa Fungsi Container Docker?

Container Docker merupakan solusi yang sangat berguna bagi para developer saat ini. Dengannya, aplikasi bisa berjalan di sistem operasi yang sama, tapi terpisah dari sistem operasi dan container lain. Fitur ini memastikan performa yang konsisten di lingkungan pengembangan dan staging.

Untuk bisnis, container Docker membantu mempercepat deployment dan memaksimalkan pemanfaatan resource sistem. Dari segi resource, penggunaan container Docker membutuhkan memori yang jauh lebih rendah daripada virtual machine. Selain itu, sifatnya yang portabel memungkinkan migrasi dan penyesuaian aplikasi legacy.

Singkatnya, Anda bisa mengoptimalkan proses pengembangan, menghemat waktu, dan memaksimalkan peluang keberhasilan proyek pengembangan aplikasi yang hemat biaya dengan cara membuat container Docker.

Cara Membuat Container Docker

Di tutorial ini, kami akan menggunakan VPS (server pribadi virtual) dengan sistem operasi Ubuntu 22.04. Pertama, pastikan Docker sudah terinstal di server Anda. Kalau belum, ikuti panduan kami untuk menginstal Docker di Ubuntu.

Apabila Anda adalah user VPS Hostinger, Anda bisa menggunakan template Ubuntu 22.04 64-bit with Docker untuk menginstal Docker secara otomatis. Untuk menggunakan template ini, masuk ke dashboard VPS Anda, lalu buka OS & Panel → Sistem Operasi.

Klik tombol Aplikasi, lalu pilih Ubuntu 22.04 64bit with Docker dari drop-down, kemudian klik Ubah OS. Tunggu sampai prosesnya selesai.

memilih sistem operasi ubuntu with docker di hpanel

Untuk mempelajari selengkapnya tentang template ini dan kelebihannya di antara template lainnya, silakan kunjungi halaman VPS Docker hosting kami.

Setelah penginstalan selesai, ikuti langkah-langkah membuat container Docker di bawah ini untuk menjalankan aplikasi Anda di lingkungan yang terisolasi.

1. Buat Image Docker

Image Docker merupakan blueprint untuk container Anda. Image ini menyimpan semua kode, library, dan dependensi yang dibutuhkan oleh aplikasi Anda agar bisa berjalan.

Saat menjalankan image Docker, yang bisa dimiliki secara pribadi atau dibagikan secara umum di platform seperti Docker Hub, image tersebut akan berubah menjadi container Docker.

Meskipun Anda bisa membuat image Docker baru, akan lebih praktis untuk menggunakan image dasar lalu mengembangkannya karena Docker Hub menyediakan banyak image dasar siap pakai.

Pertama, login VPS Anda menggunakan klien SSH seperti PuTTY. Kemudian, gunakan perintah Linux berikut untuk mencantumkan semua image Docker di sistem Anda:

sudo docker images

Untuk melihat informasi selengkapnya tentang image Docker yang ada, gunakan perintah berikut:

sudo docker images --help

Gunakan opsi -q melalui command prompt untuk mencantumkan ID numerik image yang tersedia di sistem Anda:

sudo docker images -q

Untuk mencantumkan semua image tidak terkait (non-dangling) yang tidak ditandai atau dirujuk oleh container baru, gunakan command berikut:

sudo docker images -f dangling=false

Untuk tutorial ini, kami akan mengambil (pull) image berdasarkan MySQL. Anda bisa mengunjungi halaman setiap image untuk melihat informasi selengkapnya.

image docker

Impor image baru ke direktori saat ini dengan menjalankan perintah berikut. Jangan lupa untuk mengganti <image name or image id> dengan nama atau ID image yang Anda pilih:

docker pull <image name or image id>
menginstal image di docker

Atau, Anda bisa membuat image Docker menggunakan Easypanel. Tool ini menyediakan GUI untuk menyederhanakan pengelolaan image Docker, terutama bagi user yang belum terbiasa dengan operasi command line.

EasyPanel mempermudah pembuatan image Docker untuk aplikasi yang ditulis dalam berbagai bahasa pemrograman, seperti Node.js, Ruby, Python, PHP, Go, dan Java. Tool ini mengotomatiskan banyak proses yang diperlukan dalam membuat lingkungan dan dependensi.

Paket VPS hosting yang tersedia di Hostinger menawarkan template Ubuntu 22.04 64bit with EasyPanel, yang juga bisa diinstal melalui menu Sistem Operasi di dashboard VPS.

Anda boleh menggunakan template berbasis Docker atau template yang diinstal menggunakan EasyPanel. Pilih metode mana pun sesuai keahlian dan persyaratan proyek Anda, baik Docker untuk sistem kontrol yang lebih menyeluruh atau EasyPanel yang lebih mudah.

2. Tulis Dockerfile

Dockerfile adalah file teks yang memberi tahu Docker tentang cara image Anda dibuat. Dockerfile mencantumkan semua perintah Docker yang diperlukan untuk menyatukan image container.

Dengan Dockerfile, image akan selalu dibuat dengan cara yang sama sehingga prosesnya akan lebih konsisten dan lebih mudah dikelola.

Berikut adalah contoh template Dockerfile sederhana:

FROM ubuntu:latest
WORKDIR /app
COPY . .
RUN apt-get update && apt-get install -y curl
CMD ["curl", "https://www.example.com"]

Dalam Dockerfile, setiap command akan menciptakan lapisan baru di image Docker. Berikut adalah cara kerjanya, seperti yang ditunjukkan dalam contoh kami:

  • FROM ubuntu:latest ‒ Perintah ini mengambil parent image Ubuntu terbaru dan menetapkannya sebagai lapisan dasar. Lapisan-lapisan berikutnya akan didasarkan padanya.
  • WORKDIR /app ‒ Menetapkan direktori kerja container, membuat layer baru yang berfungsi sebagai konteks untuk command selanjutnya.
  • COPY . . ‒ Menyalin file lokal ke dalam folder yang sama dengan container, membuat lapisan tambahan yang berisi file proyek Anda.
  • RUN apt-get update && apt-get install -y curl ‒ Command run Docker menginstal cURL di dalam container, menambahkan lapisan baru untuk daftar paket yang diperbarui dan paket cURL yang diinstal.
  • CMD [“curl”, “https://www.domain.com”] ‒ Menetapkan perintah default untuk menjalankan aplikasi saat container dimulai.

Setiap perubahan yang Anda lakukan saat container berjalan, seperti menambahkan atau memodifikasi file, akan ditulis ke setiap lapisan yang bisa ditulis. Dengan cara ini, Anda bisa melakukan penyesuaian sementara tanpa mempengaruhi image dasar.

Tips Berguna

Anda boleh memilih untuk membuat Dockerfile atau tidak kalau sudah menggunakan image siap pakai dari Docker Hub. Namun, file tersebut diperlukan apabila perlu menyesuaikan atau meningkatkan image.

3. Buat Container Docker

Apabila Anda membuat Dockerfile baru, buka direktori yang sama dengan file tersebut dan jalankan command build Docker untuk memulai proses pembuatan image baru. Ingat, ganti opsi <image name or image id> 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 gunakan image MySQL yang tadi sudah diambil:

docker run mysql
membuat container docker

Layering image yang efisien sangat penting untuk mengoptimalkan waktu pembuatan dan penggunaan resource. Setiap command dalam Dockerfile akan membuat lapisan baru, yang disimpan oleh Docker dalam cache.

Saat Anda membuat ulang image, Docker akan menggunakan kembali lapisan yang belum diubah sehingga mempercepat proses pembuatan.

Terlebih lagi, layering yang efisien bisa mengurangi ukuran image sehingga Anda bisa lebih cepat mengambil, mengirimkan (push), atau meluncurkannya (deploy). Praktik ini sangat penting untuk bisnis yang membutuhkan deployment cepat agar tidak tertinggal dari pesaing.

4. Jalankan dan Kelola Container

Setelah membuat image container, jalankan menggunakan perintah run Docker. Ganti <container name> dengan nama yang Anda pilih. Di sini, mysql bash menunjukkan container mana yang akan kami jalankan.

docker run --name <container name> -it mysql bash

Gunakan command Docker ps dengan opsi -a untuk mencantumkan container yang sedang berjalan di sistem Anda. Tambahkan sudo di awal perintah untuk menjalankannya dengan izin root.

docker ps -a

Gunakan command Docker berikut ini untuk melihat proses teratas suatu container:

docker top MyContainer
docker top

Untuk memetakan port antara host dan container, gunakan opsi -p di samping command docker run:

docker run -p host_port:container_port <image name>

Pemetaan port akan menampilkan aplikasi container Anda secara eksternal sehingga memungkinkan akses dari host machine. Proses ini sangat penting untuk web server, database, atau aplikasi apa pun yang terhubung dengan sistem eksternal.

Untuk menambahkan volume bagi penyimpanan tetap, gunakan opsi -v:

docker run -v host_directory:container_directory <image name>

Menambahkan volume akan menjadikan container Anda lebih solid, mudah dikelola, dan berperforma lebih baik. Data akan tetap utuh meskipun setup container Docker dihentikan, dihapus, atau diperbarui.

Selain itu, volume bisa dibagikan di antara berbagai container sehingga menyederhanakan pengelolaan data dalam setup multi-container.

Tips Berguna

Gunakan command CLI Docker atau API Docker untuk mengelola volume.

Anda bisa membatasi resource seperti CPU dan memori dengan menggunakan opsi -cpus dan -memory. Contoh berikut ini membatasi CPU container hingga 0,5 dan RAM 500 MB.

docker run --cpus=0.5 --memory=500m <image name>

Masukkan perintah berikut untuk menghentikan container yang sedang berjalan:

docker stop MyContainer

Perintah berikut ini menampilkan informasi tambahan container, termasuk ID container, penggunaan CPU, dan penggunaan memori:

docker stats
statistik docker

Untuk menghentikan container Docker, masukkan commant berikut pada command line:

docker kill MyContainer

Tips Terbaik Membuat Container Docker

Berikut adalah beberapa tips terbaik untuk memastikan proses pembuatan Docker yang efisien.

Gunakan Kodee, Asisten AI dari Hostinger

Proses yang efisien akan sangat membantu saat membuat container Docker. Untungnya, klien Hostinger bisa memanfaatkan Kodee, asisten AI gratis kami. Mulai dari menyediakan panduan penginstalan hingga merekomendasikan command yang sesuai, asisten AI ini akan membantu Anda melakukan berbagai tugas pengelolaan VPS.

Fitur ini bisa diakses dari sidebar kiri dashboard VPS Anda. Misalnya, Anda bisa memasukkan pertanyaan tentang proses pembuatan container Docker, seperti “bagaimana cara memperbarui container secara dinamis ketika image dasar berubah?”

Kodee akan merespons dengan jawaban yang lengkap, termasuk menjelaskan command atau skrip yang relevan.

Jaga agar Container Tetap Ringan

Container yang lebih kecil akan berjalan dengan lebih cepat, efisien, dan aman. Penggunaannya pun jadi lebih cepat, lebih irit resource, dan bisa memaksimalkan penggunaan hardware. Dengan lebih sedikit komponen, container ini juga mengurangi kemungkinan serangan sehingga akan meningkatkan keamanan secara keseluruhan.

Ikuti tips berikut ini untuk membuat container Docker yang ringan:

  • Pilihlah image dasar yang ringan ‒ Kalau memiliki beberapa image yang serupa, Anda bisa membuat image dasar dengan komponen bersama dan membuat image Docker kustom darinya.
  • Terapkan pembuatan multi-stage ‒ Hanya sertakan komponen penting seperti artefak dan lingkungan dalam image akhir.
  • Hapus file yang tidak perlu ‒ Setelah menginstal paket, optimalkan performa aplikasi Docker Anda dengan menghapus image Docker, cache, dan file sementara yang tidak digunakan.
  • Gunakan command yang spesifik ‒ Gabungkan command menjadi satu command line untuk mengurangi lapisan image. Selain itu, hindari menginstal paket tidak penting yang direkomendasikan atau disarankan.

Gunakan Image Resmi

Menggunakan image resmi dari Docker Hub untuk membuat image Docker akan membuat prosesnya lebih aman, optimal, dan efisien untuk container Anda. Image ini biasanya disesuaikan untuk kasus penggunaan tertentu, menjadi titik awal yang efisien untuk mengembangkan aplikasi yang canggih dan efisien.

Dari sisi keamanan, image resmi sudah menjalani pemeriksaan keamanan menyeluruh dan langsung mendapatkan patch kalau ada kerentanan. Selain itu, karena digunakan secara luas, image resmi sudah teruji dengan baik serta kompatibel dengan berbagai konfigurasi dan platform.

Batasi Izin Container

Menjalankan container dengan hak istimewa tambahan bisa menimbulkan risiko keamanan. Hacker bisa memperoleh akses penuh atas sistem Anda kalau container dibobol saat berjalan dengan akses root.

Untuk menjaga keamanan sistem, hanya berikan izin yang diperlukan pada container. Buat dan gunakan user non-root untuk menjalankan aplikasi di dalam container. Anda juga bisa mengatur container pada mode read-only untuk mencegah perubahan yang tidak diinginkan.

Mengamankan Informasi Sensitif

Saat container Docker dimulai, Anda bisa mengonfigurasi variabel lingkungan tergantung pada aplikasi atau layanan yang berjalan di dalamnya. Beberapa variabel yang paling umum meliputi kredensial database, pengaturan aplikasi, dan nilai rahasia untuk autentikasi.

Variabel lingkungan memisahkan data sensitif dari kode dan image, menyembunyikannya dari pihak yang memiliki akses ke keduanya. Menggunakan variabel lingkungan juga membuat konfigurasi menjadi lebih fleksibel, karena Anda bisa dengan mudah mengubah data tanpa mengubah Dockerfile atau membuat ulang image.

Manfaatkan Orkestrasi Container

Tool orkestrasi container seperti Docker Compose dan Kubernetes mampu menyederhanakan pengelolaan aplikasi multi-container. Tool ini mempermudah deployment dengan memungkinkan Anda meluncurkan beberapa container menggunakan satu command.

Sebagai contoh, Anda bisa menggunakan Docker Compose untuk menginstal WordPress dengan semua komponen yang diperlukan, seperti web server dan database.

Tool orkestrasi juga bisa secara otomatis menyesuaikan layanan seiring dengan meningkatnya traffic. Tool ini mengatur traffic jaringan yang masuk dengan mendistribusikannya ke beberapa container untuk meningkatkan performa dan keandalan.

Kesimpulan

Docker adalah tool yang sangat berguna bagi developer dan bisnis, menawarkan lingkungan yang konsisten, deployment yang efisien, dan pemanfaatan resource yang optimal. Dengan mempelajari cara membuat container Docker, proses pengembangan Anda pun menjadi lebih efisien dan aman.

Melalui artikel ini, Anda sudah mempelajari langkah-langkah membuat container dari image Docker beserta command umum yang diperlukan. Kami juga membagikan tips terbaik untuk pengelolaan container Docker yang efisien pada VPS Ubuntu 22.04.

Apabila Anda masih memiliki pertanyaan tentang cara membuat Docker container, sampaikan lewat kolom komentar di bawah artikel ini, ya.

Tanya Jawab (FAQ) Cara Membuat Container Docker

Bagian ini akan menjawab beberapa pertanyaan umum tentang proses pembuatan container Docker.

Apa Perbedaan Image dan Container Docker?

Image Docker adalah blueprint untuk membuat container, yang menampung kode aplikasi, library, dan dependensi. Container Docker adalah versi image yang berjalan. Saat Anda memulai container dari image, sistem menciptakan lingkungan langsung tempat aplikasi bisa berjalan dan berinteraksi.

Bisakah Docker Image Memiliki Beberapa Container?

Ya, satu image Docker bisa digunakan untuk beberapa container. Setiap container berjalan secara independen serta memiliki resource dan pengaturannya sendiri. Dengan cara ini, Anda bisa menyesuaikan atau menjalankan aplikasi sesuai kebutuhan di berbagai lingkungan tanpa harus membuat image Docker berkali-kali sehingga akan menghemat waktu dan resource.

Bisakah Image Docker Diedit?

Tidak bisa secara langsung, karena image Docker terdiri dari lapisan dengan izin read-only. Untuk melakukan perubahan, update Dockerfile atau file sumber lalu buat image baru dengan command build Docker. Karena container yang sudah ada tidak akan diperbarui secara otomatis, Anda harus menghentikannya dan membuat container baru dari image yang dibuat.

Author
Penulis

Faradilla A.

Faradilla, yang lebih akrab disapa Ninda, adalah Content Marketing Specialist di Hostinger. Ia suka mengikuti tren teknologi, digital marketing, dan belajar bahasa. Melalui tutorial Hostinger ini, Ninda ingin berbagi informasi dan membantu pembaca menyelesaikan masalah yang dialami. Kenali Ninda lebih dekat di LinkedIn.