Docker - Menetap Node.js: Panduan Pemula
Hai sana, para pengembang yang sedang belajar! Hari ini, kita akan memulai perjalanan menarik ke dunia Docker dan Node.js. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya disini untuk mengarahkan Anda dalam perjalanan ini langkah demi langkah. Jangan khawatir jika Anda baru saja memulai programming – kita akan mulai dari dasar dan naik tingkat demi tingkat. Jadi, ambil secangkir kopi (atau teh, jika itu yang Anda suka), dan mari kita masuk ke dalam!
Apa Itu Docker?
Sebelum kita melompat ke hal-hal teknis, mari bicarakan tentang Docker. Bayangkan Anda pindah ke rumah baru. Daripada memasukkan semua barang Anda ke dalam kotak berbentuk dan ukuran berbeda, apa bila Anda dapat memasukkan semua milik Anda ke dalam kontainer standar yang pas dengan semua truk atau kapal? Itu sebenarnya apa yang Docker lakukan untuk software!
Docker adalah platform yang memungkinkan Anda memaketkan aplikasi Anda dan semua dependensinya ke dalam unit standar yang disebut kontainer. Kontainer ini dapat berjalan konsisten di mana saja, membuatnya mudah untuk mengembangkan, mengirimkan, dan menjalankan aplikasi.
Mengapa Menggunakan Docker dengan Node.js?
Sekarang Anda mungkin berpikir, " Mengapa harus bermasalah dengan Docker untuk aplikasi Node.js saya?" Well, mari saya ceritakan kecil.
Pada suatu waktu, ada seorang pengembang bernama Sarah. Dia membuat aplikasi Node.js yang fantastis di laptopnya. Itu bekerja sempurna! Tetapi ketika dia mencoba menjalankan itu di server timnya, itu krash. Masalahnya apa? Versi Node.js yang berbeda dan beberapa dependensi yang hilang. Sarah membuang waktu beberapa hari mencoba memperbaikinya.
Jika Sarah menggunakan Docker, dia dapat menghindari masalah ini. Docker memastikan bahwa aplikasi Anda berjalan dalam lingkungan yang sama di mana saja – baik itu laptop Anda, destop rekan Anda, atau server di awan.
Menyiapkan Docker untuk Node.js
Baiklah, mari kita lipatkan lengan dan mulai setup yang nyata!
Langkah 1: Instal Docker
Pertama-tama, kita perlu menginstal Docker di mesin kita. Pergi ke website Docker dan unduh Docker Desktop untuk sistem operasi Anda. Ikuti petunjuk instalasi, dan Anda siap untuk melanjutkan!
Langkah 2: Buat Aplikasi Node.js
Mari kita buat aplikasi Node.js sederhana untuk dikontainerkan. Buat direktori baru untuk proyek Anda dan navigasikan ke dalamnya:
mkdir my-node-app
cd my-node-app
Sekarang, mari kita buat file package.json
sederhana:
npm init -y
Perintah ini membuat file package.json
dasar dengan nilai default. Selanjutnya, mari kita instal Express, kerangka kerja Node.js yang populer:
npm install express
Sekarang, buat file bernama app.js
dan tambahkan kode berikut:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello, Docker!');
});
app.listen(port, () => {
console.log(`App listening at http://localhost:${port}`);
});
Aplikasi sederhana ini membuat server web yang merespon "Hello, Docker!" saat Anda mengunjungi URL utama.
Langkah 3: Buat Dockerfile
Sekarang ke bagian menarik – membuat Dockerfile kami! Dockerfile adalah seperti resep yang memberitahu Docker bagaimana membangun kontainer kami. Buat file bernama Dockerfile
(tanpa ekstensi) di direktori proyek Anda dan tambahkan berikut ini:
# Gunakan runtime Node.js resmi sebagai image induk
FROM node:14
# Set direktori kerja di dalam kontainer
WORKDIR /usr/src/app
# Copy package.json dan package-lock.json
COPY package*.json ./
# Instal dependensi
RUN npm install
# Copy sisanya kode aplikasi
COPY . .
# Buat port 3000 tersedia di luar kontainer
EXPOSE 3000
# Tentukan perintah untuk menjalankan aplikasi
CMD [ "node", "app.js" ]
mari kitauraikan ini:
-
FROM node:14
: Ini menentukan image induk yang digunakan – dalam kasus ini, Node.js versi 14. -
WORKDIR /usr/src/app
: Ini mengatur direktori kerja di dalam kontainer. -
COPY package*.json ./
: Ini menyalin file package.json ke dalam kontainer. -
RUN npm install
: Ini menginstal dependensi di dalam kontainer. -
COPY . .
: Ini menyalin semua kode aplikasi ke dalam kontainer. -
EXPOSE 3000
: Ini menampilkan port 3000 untuk diakses di luar kontainer. -
CMD [ "node", "app.js" ]
: Ini menentukan perintah untuk menjalankan aplikasi.
Langkah 4: Bangun dan Jalankan Kontainer Docker
Sekarang kita memiliki Dockerfile, mari kita bangun image Docker kita:
docker build -t my-node-app .
Perintah ini membangun image Docker dan menandainya sebagai my-node-app
. Tanda .
di akhir memberitahu Docker untuk mencari Dockerfile di direktori saat ini.
Setelah bangun selesai, kita dapat menjalankan kontainer kita:
docker run -p 3000:3000 my-node-app
Perintah ini menjalankan kontainer kita dan memetakan port 3000 di kontainer ke port 3000 di mesin tuan.
Selamat! Anda sekarang dapat mengunjungi http://localhost:3000
di browser Anda dan melihat "Hello, Docker!"
Perintah Docker Umum
Berikut adalah tabel yang praktis dari beberapa perintah Docker yang Anda temui berguna:
Perintah | Deskripsi |
---|---|
docker build |
Bangun image Docker dari Dockerfile |
docker run |
Jalankan kontainer Docker |
docker ps |
Daftar kontainer yang sedang berjalan |
docker stop |
Hentikan kontainer yang sedang berjalan |
docker rm |
Hapus kontainer |
docker images |
Daftar image Docker |
docker rmi |
Hapus image Docker |
docker logs |
Lihat log untuk kontainer |
Kesimpulan
Dan itu dia, teman-teman! Kita telah berhasil menyiapkan aplikasi Node.js menggunakan Docker. Kita telah belajar apa itu Docker, mengapa itu berguna, dan bagaimana membuat dan menjalankan kontainer Docker untuk aplikasi Node.js.
Ingat, seperti mengembangkan keterampilan baru, memahami Docker memerlukan latihan. Jangan frustasi jika hal-hal tidak berjalan sempurna pertama kali. Tetap mencoba, dan sebelum Anda tahu, Anda akan menjadi ahli dalam mengkontainerkan aplikasi!
Saat kita selesai, saya ingin berbagi rahasia kecil dengan Anda. Ketika saya pertama kali mulai dengan Docker, saya secara tidak sengaja mengetik docker run
instead of docker build
dan menghabiskan satu jam mencoba mengetahui mengapa perubahan saya tidak muncul. Kita semua membuat kesalahan – itu bagaimana kita belajar!
Terus coding, terus belajar, dan terutama, bersenang-senang dengan itu! Sampai jumpa lagi, selamat mengkontainerkan!
Credits: Image by storyset