{"id":9735,"date":"2020-06-23T02:21:15","date_gmt":"2020-06-23T02:21:15","guid":{"rendered":"https:\/\/blog.hostinger.io\/co-id-tutorial\/?p=9735"},"modified":"2025-12-18T23:32:36","modified_gmt":"2025-12-18T16:32:36","slug":"docker-container","status":"publish","type":"post","link":"\/id\/tutorial\/docker-container\/","title":{"rendered":"Cara membuat container Docker + perintahnya lengkap"},"content":{"rendered":"<p class=\"wp-block-paragraph\"><a href=\"\/id\/tutorial\/apa-itu-docker\/\">Docker adalah<\/a> tool yang bisa membantu menyederhanakan proses deployment bagi developer yang sedang membangun aplikasi atau layanan yang berjalan di beberapa sistem operasi.<\/p><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">Nah, tutorial ini akan menjelaskan cara membuat container Docker, memandu Anda memahami manfaatnya dalam pengembangan software, serta tips terbaik untuk menggunakannya.<\/p><h2 class=\"wp-block-heading\" id=\"h-apa-itu-container-docker\">Apa Itu Container Docker?<\/h2><p class=\"wp-block-paragraph\">Container Docker adalah paket software mandiri yang memuat semua dependensi yang diperlukan untuk menjalankan aplikasi tertentu pada berbagai sistem operasi.<\/p><p class=\"wp-block-paragraph\">Dalam penggunaannya, image Docker akan menentukan semua instruksi konfigurasi untuk memulai atau menghentikan container. Setiap kali pengguna menjalankan image, container baru akan dibuat.<\/p><h2 class=\"wp-block-heading\" id=\"h-apa-fungsi-container-docker\">Apa Fungsi Container Docker?<\/h2><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">Singkatnya, Anda bisa mengoptimalkan proses pengembangan, menghemat waktu, dan memaksimalkan peluang keberhasilan proyek pengembangan aplikasi yang hemat biaya dengan cara membuat container Docker.<\/p><h2 class=\"wp-block-heading\" id=\"h-cara-membuat-container-docker\">Cara Membuat Container Docker<\/h2><p class=\"wp-block-paragraph\">Di tutorial ini, kami akan menggunakan VPS (<a href=\"\/id\/tutorial\/apa-itu-vps\/\">server pribadi virtual<\/a>) dengan sistem operasi <strong>Ubuntu 22.04<\/strong>. Pertama, pastikan Docker sudah terinstal di server Anda. Kalau belum, ikuti panduan kami untuk <a href=\"\/id\/tutorial\/cara-install-docker-ubuntu\/\">menginstal Docker di Ubuntu<\/a>.<\/p><p class=\"wp-block-paragraph\">Apabila Anda adalah user VPS Hostinger, Anda bisa menggunakan template <strong>Ubuntu 22.04 64-bit with Docker<\/strong> untuk menginstal Docker secara otomatis. Untuk menggunakan template ini, masuk ke dashboard <strong>VPS<\/strong> Anda, lalu buka <strong>OS &amp; Panel &rarr; Sistem Operasi.<\/strong><\/p><p class=\"wp-block-paragraph\">Klik tombol <strong>Aplikasi<\/strong>, lalu pilih <strong>Ubuntu 22.04 64bit with Docker<\/strong> dari drop-down, kemudian klik <strong>Ubah OS<\/strong>. Tunggu sampai prosesnya selesai.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"\/tutorial\/wp-content\/uploads\/sites\/37\/2024\/02\/memilih-sistem-operasi-ubuntu-with-docker-di-hpanel-1024x404.png\" alt=\"memilih sistem operasi ubuntu with docker di hpanel\"><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Untuk mempelajari selengkapnya tentang template ini dan kelebihannya di antara template lainnya, silakan kunjungi halaman <a href=\"\/id\/vps\/docker-hosting\">VPS Docker hosting<\/a> kami.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/id\/hosting-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2023\/02\/ID-VPS-hosting_in-text-banner.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-29630\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2023\/02\/ID-VPS-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2023\/02\/ID-VPS-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2023\/02\/ID-VPS-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2023\/02\/ID-VPS-hosting_in-text-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p class=\"wp-block-paragraph\">Setelah penginstalan selesai, ikuti langkah-langkah membuat container Docker di bawah ini untuk menjalankan aplikasi Anda di lingkungan yang terisolasi.<\/p><h3 class=\"wp-block-heading\" id=\"h-1-buat-image-docker\">1. Buat Image Docker<\/h3><p class=\"wp-block-paragraph\">Image Docker merupakan blueprint untuk container Anda. Image ini menyimpan semua kode, library, dan dependensi yang dibutuhkan oleh aplikasi Anda agar bisa berjalan.<\/p><p class=\"wp-block-paragraph\">Saat menjalankan image Docker, yang bisa dimiliki secara pribadi atau dibagikan secara umum di platform seperti <a href=\"https:\/\/hub.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Hub<\/a>, image tersebut akan berubah menjadi container Docker.<\/p><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">Pertama, login VPS Anda menggunakan <a href=\"\/id\/tutorial\/cara-menggunakan-putty-untuk-ssh-ke-vps\/\">klien SSH seperti PuTTY<\/a>. Kemudian, gunakan <a href=\"\/id\/tutorial\/perintah-dasar-linux\/\">perintah Linux<\/a> berikut untuk mencantumkan semua image Docker di sistem Anda:<\/p><pre class=\"wp-block-preformatted\">sudo docker images<\/pre><p class=\"wp-block-paragraph\">Untuk melihat informasi selengkapnya tentang image Docker yang ada, gunakan perintah berikut:<\/p><pre class=\"wp-block-preformatted\">sudo docker images --help<\/pre><p class=\"wp-block-paragraph\">Gunakan opsi <strong>-q<\/strong> melalui command prompt untuk mencantumkan ID numerik image yang tersedia di sistem Anda:<\/p><pre class=\"wp-block-preformatted\">sudo docker images -q<\/pre><p class=\"wp-block-paragraph\">Untuk mencantumkan semua image tidak terkait (non-dangling) yang tidak ditandai atau dirujuk oleh container baru, gunakan command berikut:<\/p><pre class=\"wp-block-preformatted\">sudo docker images -f dangling=false<\/pre><p class=\"wp-block-paragraph\">Untuk tutorial ini, kami akan mengambil (pull) image berdasarkan <strong>MySQL<\/strong>. Anda bisa mengunjungi halaman setiap image untuk melihat informasi selengkapnya.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1356\" height=\"284\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2024\/03\/image-docker.png\/w=1024,h=1024,fit=scale-down\" alt=\"image docker\" class=\"wp-image-34802\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2024\/03\/image-docker.png\/w=1356,fit=scale-down 1356w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2024\/03\/image-docker.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2024\/03\/image-docker.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2024\/03\/image-docker.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2024\/03\/image-docker.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1356px) 100vw, 1356px\" \/><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Impor image baru ke direktori saat ini dengan menjalankan perintah berikut. Jangan lupa untuk mengganti <strong><strong>&lt;image name or image id&gt;<\/strong><\/strong> dengan nama atau ID image yang Anda pilih:<\/p><pre class=\"wp-block-preformatted\">docker pull &lt;image name or image id&gt;<\/pre><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"\/tutorial\/wp-content\/uploads\/sites\/37\/2024\/03\/menginstal-image-di-docker.png\" alt=\"menginstal image di docker\"><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Atau, Anda bisa membuat image Docker menggunakan <a href=\"https:\/\/easypanel.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Easypanel<\/a>. Tool ini menyediakan GUI untuk menyederhanakan pengelolaan image Docker, terutama bagi user yang belum terbiasa dengan operasi command line.<\/p><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\"><a href=\"\/id\/hosting-vps\">Paket VPS hosting<\/a> yang tersedia di Hostinger menawarkan template <strong>Ubuntu 22.04 64bit with EasyPanel<\/strong>, yang juga bisa diinstal melalui menu <strong>Sistem Operasi<\/strong> di dashboard VPS.<\/p><p class=\"wp-block-paragraph\">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.<\/p><h3 class=\"wp-block-heading\" id=\"h-2-tulis-dockerfile\">2. Tulis Dockerfile<\/h3><p class=\"wp-block-paragraph\">Dockerfile adalah file teks yang memberi tahu Docker tentang cara image Anda dibuat. Dockerfile mencantumkan semua perintah Docker yang diperlukan untuk menyatukan image container.<\/p><p class=\"wp-block-paragraph\">Dengan Dockerfile, image akan selalu dibuat dengan cara yang sama sehingga prosesnya akan lebih konsisten dan lebih mudah dikelola.<\/p><p class=\"wp-block-paragraph\">Berikut adalah contoh template Dockerfile sederhana:<\/p><pre class=\"wp-block-preformatted\">FROM ubuntu:latest\nWORKDIR \/app\nCOPY . .\nRUN apt-get update &amp;&amp; apt-get install -y curl\nCMD [\"curl\", \"https:\/\/www.example.com\"]<\/pre><p class=\"wp-block-paragraph\">Dalam Dockerfile, setiap command akan menciptakan lapisan baru di image Docker. Berikut adalah cara kerjanya, seperti yang ditunjukkan dalam contoh kami:<\/p><ul class=\"wp-block-list\">\n<li><strong>FROM ubuntu:latest<\/strong> &#8210; Perintah ini mengambil parent image Ubuntu terbaru dan menetapkannya sebagai lapisan dasar. Lapisan-lapisan berikutnya akan didasarkan padanya.<\/li>\n\n\n\n<li><strong>WORKDIR \/app<\/strong> &#8210; Menetapkan direktori kerja container, membuat layer baru yang berfungsi sebagai konteks untuk command selanjutnya.<\/li>\n\n\n\n<li><strong>COPY . .<\/strong> &#8210; Menyalin file lokal ke dalam folder yang sama dengan container, membuat lapisan tambahan yang berisi file proyek Anda.<\/li>\n\n\n\n<li><strong>RUN apt-get update &amp;&amp; apt-get install -y curl<\/strong> &#8210; Command <strong>run<\/strong> Docker menginstal <a href=\"\/id\/tutorial\/apa-itu-curl\/\">cURL<\/a> di dalam container, menambahkan lapisan baru untuk daftar paket yang diperbarui dan paket cURL yang diinstal.<\/li>\n\n\n\n<li><strong><strong>CMD [&ldquo;curl&rdquo;, &ldquo;https:\/\/www.domain.com&rdquo;]<\/strong><\/strong> &#8210; Menetapkan perintah default untuk menjalankan aplikasi saat container dimulai.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">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.<\/p><p>\n\n\n        <div class=\"protip\">\n            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Tips Berguna                <\/p>\n            <\/div>\n            <p class=\"protip__content\">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.<\/p>\n                    <\/div>\n        \n\n\n\n<\/p><h3 class=\"wp-block-heading\" id=\"h-3-buat-container-docker\">3. Buat Container Docker<\/h3><p class=\"wp-block-paragraph\">Apabila Anda membuat Dockerfile baru, buka direktori yang sama dengan file tersebut dan jalankan command <strong>build<\/strong> Docker untuk memulai proses pembuatan image baru. Ingat, ganti opsi <strong>&lt;image name or image id&gt;<\/strong> dengan nama tag Anda.<\/p><pre class=\"wp-block-preformatted\">docker build -t &lt;image name or image id&gt; .<\/pre><p class=\"wp-block-paragraph\">Mulai container baru dari image yang baru saja Anda buat menggunakan perintah <strong>run<\/strong> Docker:<\/p><pre class=\"wp-block-preformatted\">docker run &lt;image name or image id&gt;<\/pre><p class=\"wp-block-paragraph\">Atau, jalankan image siap pakai yang diimpor dari Docker Hub. Mari gunakan image MySQL yang tadi sudah diambil:<\/p><pre class=\"wp-block-preformatted\">docker run mysql<\/pre><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"\/tutorial\/wp-content\/uploads\/sites\/37\/2024\/03\/membuat-container-docker-1024x169.png\" alt=\"membuat container docker\"><\/figure>\n<\/div><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">Saat Anda membuat ulang image, Docker akan menggunakan kembali lapisan yang belum diubah sehingga mempercepat proses pembuatan.<\/p><p class=\"wp-block-paragraph\">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.<\/p><h3 class=\"wp-block-heading\" id=\"h-4-jalankan-dan-kelola-container\">4. Jalankan dan Kelola Container<\/h3><p class=\"wp-block-paragraph\">Setelah membuat image container, jalankan menggunakan perintah <strong>run<\/strong> Docker. Ganti <strong>&lt;container name&gt;<\/strong> dengan nama yang Anda pilih. Di sini, <strong>mysql bash<\/strong> menunjukkan container mana yang akan kami jalankan.<\/p><pre class=\"wp-block-preformatted\">docker run --name &lt;container name&gt; -it mysql bash<\/pre><p class=\"wp-block-paragraph\">Gunakan command Docker <strong>ps<\/strong> dengan opsi <strong>-a<\/strong> untuk mencantumkan container yang sedang berjalan di sistem Anda. Tambahkan <strong>sudo<\/strong> di awal perintah untuk menjalankannya dengan izin root.<\/p><pre class=\"wp-block-preformatted\">docker ps -a<\/pre><p class=\"wp-block-paragraph\">Gunakan command Docker berikut ini untuk melihat proses teratas suatu container:<\/p><pre class=\"wp-block-preformatted\">docker top MyContainer<\/pre><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"\/tutorial\/wp-content\/uploads\/sites\/37\/2024\/03\/docker-top.png\" alt=\"docker top\"><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Untuk memetakan port antara host dan container, gunakan opsi <strong>-p<\/strong> di samping command docker <strong>run<\/strong>:<\/p><pre class=\"wp-block-preformatted\">docker run -p host_port:container_port &lt;image name&gt;<\/pre><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">Untuk menambahkan volume bagi penyimpanan tetap, gunakan opsi <strong>-v<\/strong>:<\/p><pre class=\"wp-block-preformatted\">docker run -v host_directory:container_directory &lt;image name&gt;<\/pre><p class=\"wp-block-paragraph\">Menambahkan <a href=\"https:\/\/docs.docker.com\/storage\/volumes\/\" target=\"_blank\" rel=\"noreferrer noopener\">volume<\/a> akan menjadikan container Anda lebih solid, mudah dikelola, dan berperforma lebih baik. Data akan tetap utuh meskipun setup container Docker dihentikan, dihapus, atau diperbarui.<\/p><p class=\"wp-block-paragraph\">Selain itu, volume bisa dibagikan di antara berbagai container sehingga menyederhanakan pengelolaan data dalam setup multi-container.<\/p><p>\n\n\n        <div class=\"protip\">\n            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Tips Berguna                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Gunakan command CLI Docker atau API Docker untuk mengelola volume.<\/p>\n                    <\/div>\n        \n\n\n\n<\/p><p class=\"wp-block-paragraph\">Anda bisa membatasi resource seperti CPU dan memori dengan menggunakan opsi <strong>-cpus<\/strong> dan <strong>-memory<\/strong>. Contoh berikut ini membatasi CPU container hingga 0,5 dan RAM 500 MB.<\/p><pre class=\"wp-block-preformatted\">docker run --cpus=0.5 --memory=500m &lt;image name&gt;<\/pre><p class=\"wp-block-paragraph\">Masukkan perintah berikut untuk menghentikan container yang sedang berjalan:<\/p><pre class=\"wp-block-preformatted\">docker stop MyContainer<\/pre><p class=\"wp-block-paragraph\">Perintah berikut ini menampilkan informasi tambahan container, termasuk ID container, penggunaan CPU, dan penggunaan memori:<\/p><pre class=\"wp-block-preformatted\">docker stats<\/pre><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"\/tutorial\/wp-content\/uploads\/sites\/37\/2024\/03\/statistik-docker-1024x67.png\" alt=\"statistik docker\"><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Untuk menghentikan container Docker, masukkan commant berikut pada command line:<\/p><pre class=\"wp-block-preformatted\">docker kill MyContainer<\/pre><h2 class=\"wp-block-heading\" id=\"h-tips-terbaik-membuat-container-docker\">Tips Terbaik Membuat Container Docker<\/h2><p class=\"wp-block-paragraph\">Berikut adalah beberapa tips terbaik untuk memastikan proses pembuatan Docker yang efisien.<\/p><p class=\"wp-block-paragraph\"><strong>Gunakan Kodee, Asisten AI dari Hostinger<\/strong><\/p><p class=\"wp-block-paragraph\">Proses yang efisien akan sangat membantu saat membuat container Docker. Untungnya, klien Hostinger bisa memanfaatkan <strong>Kodee<\/strong>, 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.<\/p><p class=\"wp-block-paragraph\">Fitur ini bisa diakses dari sidebar kiri dashboard <strong>VPS <\/strong>Anda. Misalnya, Anda bisa memasukkan pertanyaan tentang proses pembuatan container Docker, seperti &ldquo;bagaimana cara memperbarui container secara dinamis ketika image dasar berubah?&rdquo;<\/p><p class=\"wp-block-paragraph\"><strong>Kodee<\/strong> akan merespons dengan jawaban yang lengkap, termasuk menjelaskan command atau skrip yang relevan.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a67e67adb8f9\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a67e67adb8f9\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"576\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2020\/06\/contoh-penggunaan-kodee-docker.png\/w=1024,h=1024,fit=scale-down\" alt=\"tampilan kodee hostinger yang menunjukkan contoh mengelola docker\" class=\"wp-image-39979\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2020\/06\/contoh-penggunaan-kodee-docker.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2020\/06\/contoh-penggunaan-kodee-docker.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2020\/06\/contoh-penggunaan-kodee-docker.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2020\/06\/contoh-penggunaan-kodee-docker.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p class=\"wp-block-paragraph\"><strong>Jaga agar Container Tetap Ringan<\/strong><\/p><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">Ikuti tips berikut ini untuk membuat container Docker yang ringan:<\/p><ul class=\"wp-block-list\">\n<li><strong>Pilihlah image dasar yang ringan<\/strong> &#8210; Kalau memiliki beberapa image yang serupa, Anda bisa membuat image dasar dengan komponen bersama dan membuat image Docker kustom darinya.<\/li>\n\n\n\n<li><strong>Terapkan pembuatan multi-stage<\/strong> &#8210; Hanya sertakan komponen penting seperti artefak dan lingkungan dalam image akhir.<\/li>\n\n\n\n<li><strong>Hapus file yang tidak perlu<\/strong> &#8210; Setelah menginstal paket, optimalkan performa aplikasi Docker Anda dengan menghapus image Docker, cache, dan file sementara yang tidak digunakan.<\/li>\n\n\n\n<li><strong>Gunakan command yang spesifik<\/strong> &#8210; Gabungkan command menjadi satu command line untuk mengurangi lapisan image. Selain itu, hindari menginstal paket tidak penting yang direkomendasikan atau disarankan.<\/li>\n<\/ul><p class=\"wp-block-paragraph\"><strong>Gunakan Image Resmi<\/strong><\/p><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\"><strong>Batasi Izin Container<\/strong><\/p><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">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 <strong>mode read-only<\/strong> untuk mencegah perubahan yang tidak diinginkan.<\/p><p class=\"wp-block-paragraph\"><strong>Mengamankan Informasi Sensitif<\/strong><\/p><p class=\"wp-block-paragraph\">Saat container Docker dimulai, Anda bisa mengonfigurasi <a href=\"https:\/\/docs.docker.com\/compose\/environment-variables\/\" target=\"_blank\" rel=\"noreferrer noopener\">variabel lingkungan<\/a> tergantung pada aplikasi atau layanan yang berjalan di dalamnya. Beberapa variabel yang paling umum meliputi kredensial database, pengaturan aplikasi, dan nilai rahasia untuk autentikasi.<\/p><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\"><strong>Manfaatkan Orkestrasi Container<\/strong><\/p><p class=\"wp-block-paragraph\">Tool orkestrasi container seperti <strong>Docker Compose<\/strong> dan <strong>Kubernetes<\/strong> mampu menyederhanakan pengelolaan aplikasi multi-container. Tool ini mempermudah deployment dengan memungkinkan Anda meluncurkan beberapa container menggunakan satu command.<\/p><p class=\"wp-block-paragraph\">Sebagai contoh, Anda bisa menggunakan Docker Compose untuk menginstal WordPress dengan semua komponen yang diperlukan, seperti web server dan database.<\/p><p class=\"wp-block-paragraph\">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.<\/p><h2 class=\"wp-block-heading\" id=\"h-kesimpulan\">Kesimpulan<\/h2><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">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.<\/p><p class=\"wp-block-paragraph\">Apabila Anda masih memiliki pertanyaan tentang cara membuat Docker container, sampaikan lewat kolom komentar di bawah artikel ini, ya.<\/p><h2 class=\"wp-block-heading\" id=\"h-tanya-jawab-faq-cara-membuat-container-docker\">Tanya Jawab (FAQ) Cara Membuat Container Docker<\/h2><p class=\"wp-block-paragraph\">Bagian ini akan menjawab beberapa pertanyaan umum tentang proses pembuatan container Docker.<\/p><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-69442ca44ae67\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Apa Perbedaan Image dan Container Docker?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>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.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-69442ca44ae6b\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Bisakah Docker Image Memiliki Beberapa Container?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>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.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-69442ca44ae6c\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Bisakah Image Docker Diedit?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>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.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>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 [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/id\/tutorial\/docker-container\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":190,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"","rank_math_description":"Container Docker bisa digunakan untuk mempermudah proses deployment. Cari tahu cara membuat container Docker lengkap di artikel ini yuk!","rank_math_focus_keyword":"cara membuat container docker, container docker","footnotes":""},"categories":[5096],"tags":[9049,9046,9045,7374,9047,9048,9050],"class_list":["post-9735","post","type-post","status-publish","format-standard","hentry","category-vps","tag-belajar-docker","tag-container","tag-container-docker","tag-docker","tag-docker-image","tag-image","tag-panduan-docker"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-create-docker-container\/","default":1},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/container-docker\/","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/comment-creer-un-conteneur-docker\/","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/como-crear-contenedor-docker\/","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/docker-container\/","default":0},{"locale":"de-DE","link":"https:\/\/www.hostinger.com\/de\/tutorials\/docker-container-erstellen\/","default":0},{"locale":"ja-JP","link":"https:\/\/www.hostinger.com\/jp\/tutorials\/docker-start-a-container\/","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-create-docker-container\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-create-docker-container\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-create-docker-container\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-create-docker-container\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-create-docker-container\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-create-docker-container\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-create-docker-container\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/como-crear-contenedor-docker\/","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/como-crear-contenedor-docker\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/como-crear-contenedor-docker\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/container-docker\/","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/posts\/9735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/users\/190"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/comments?post=9735"}],"version-history":[{"count":15,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/posts\/9735\/revisions"}],"predecessor-version":[{"id":47195,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/posts\/9735\/revisions\/47195"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/media?parent=9735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/categories?post=9735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/tags?post=9735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}