GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Buat Node.js Hello World Docker Container sederhana dari awal

Dalam posting pengantar Dockerfile saya memperkenalkan contoh Dockerfile Node.js sederhana:

FROM node:14
WORKDIR /usr/src/app
COPY package*.json app.js ./
RUN npm install
EXPOSE 3000
CMD ["node", "app.js"]

CATATAN:gunakan tanda kutip ganda di CMD garis. Kutipan tunggal akan menghasilkan kesalahan.

Mari gunakan Dockerfile ini untuk membuat image, lalu jalankan container.

Saya akan membuat file ini di dev/docker/examplenode map. Saya membuat aplikasi Node.js sederhana di app.js file, menggunakan Express:

const express = require('express')
const app = express()

app.get('/', (req, res) => res.send('Hello World!'))
app.listen(3000, () => console.log('Server ready'))

Sangat sederhana, tetapi kami memiliki satu ketergantungan. Saya perlu menambahkannya ke package.json file, jadi saya menjalankan

npm init -y
npm install express

Sekarang Anda dapat menjalankan node app.js dan pastikan berhasil:

Hentikan proses ini dan mari buat Gambar Docker dari ini.

Yang Anda butuhkan hanyalah app.js , package.json dan package-lock.json file.

Dan file Docker. Buat Dockerfile file di folder yang sama, tanpa ekstensi (bukan Dockerfile.txt).

Anda dapat dengan bebas menghapus node_modules folder yang sekarang berisi perpustakaan Express dan dependensinya, tetapi Anda juga dapat membuat .dockerignore file dan tambahkan node_modules di dalamnya, untuk membuat Docker mengabaikan folder ini sepenuhnya.

Ini berfungsi seperti .gitignore di Git.

Jalankan perintah

docker build -t examplenode .

Perlu beberapa saat untuk mengunduh gambar Node dan menjalankan npm install , maka Anda akan mendapatkan pesan sukses.

Penting untuk dicatat bahwa setelah Anda pertama kali mengunduh gambar dasar seperti node yang kami gunakan di sini, yang akan di-cache secara lokal, jadi Anda tidak perlu mengunduhnya lagi dan proses pembuatan gambar akan jauh lebih cepat.

Sekarang kita dapat menjalankan container dari gambar:

docker run -d -p 3000:3000 --name node-app examplenode

Sekarang Anda dapat melihat gambar berjalan di Docker Desktop:

Dan Anda dapat mengklik tombol “Buka di browser” untuk membuka aplikasi yang berjalan pada port 3000:

Sama seperti sebelumnya! Kecuali sekarang aplikasi berjalan dalam wadahnya sendiri, sepenuhnya terisolasi, dan kami dapat menjalankan versi Node apa pun yang kami inginkan dalam wadah, dengan semua manfaat yang diberikan Docker kepada kami.

Misalnya Anda dapat menghapus wadah dan menjalankannya di port 80 alih-alih 3000, dengan:

docker run -d -p 80:3000 --name node-app examplenode

Gambar tidak perlu diubah, yang Anda ubah hanyalah pemetaan port. Ini hasilnya:


Docker
  1. Cara Menjalankan Nginx dalam Wadah Docker:Panduan Langkah demi Langkah

  2. Cara Menjalankan MySQL di Docker Container:Panduan Sederhana dan Mudah Diikuti

  3. Cara Menjalankan MySQL Dalam Wadah Docker

  1. Bagaimana Cara Menjalankan Program Di Dalam Wadah Docker?

  2. Ekstrak File Dari Gambar Docker?

  3. Cara Menjalankan Perintah di Running Docker Container

  1. Cara Melepaskan Dari Wadah Docker Tanpa Menghentikannya

  2. Docker Run vs Start vs Create:Perbedaan Dijelaskan

  3. Cara membuat Gambar Docker dari Wadah dan File Docker