Giới thiệu
Hôm nay, mình sẽ đi qua một ví dụ khác về cách xây dựng một Docker Image
cho một ứng dụng Nodejs
và chạy nó trên Ubuntu Server
. Chúng ta sử dụng source code
được clone từ Github
về và xây dựng ứng dụng nodejs calculator
với view
là EJS
.
Chuẩn bị
Chúng ta sẽ sử dụng source code
từ kho lưu trữ calculator-nodejs. Máy tính của bạn cần phải cài đặt Git
, Docker
và chạy trên Ubuntu Server
.
Bước 1: Cài đặt Docker trên Ubuntu Server (Nếu chưa có)
Trước tiên, chúng ta cần cài đặt Docker
trên Ubuntu Server
. Chạy các lệnh sau:
sudo apt-get update sudo apt-get install -y docker.io sudo systemctl start docker sudo systemctl enable docker
Bước 2: Clone source code từ GitHub
Tiếp theo, chúng ta sẽ clone source code
từ kho lưu trữ GitHub
.
# đi đến home cd ~ # lấy source code về git clone https://github.com/kennashka/calculator # Đổi tên thành calculator-nodejs và đi tới calculator-nodejs mv calculator calculator-nodejs cd calculator-nodejs
Xây dựng Image
Bước 1: Viết Dockerfile (Bằng Vim, Vi hoặc Nano)
- Dockerfile là tệp tin text
chứa các chỉ dẫn để Docker Build Image
của bạn. Trong thư mục gốc của dự án vừa clone
về, tạo một file
tên là Dockerfile
và thêm vào các dòng sau:
##### Dockerfile ##### FROM node:18.18-alpine as build RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app COPY package*.json ./ USER node RUN npm cache clean --force && npm install COPY --chown=node:node . . EXPOSE 3000 CMD [ "node", "app.js" ]
Bước 2: Build Image từ Dockerfile
Chạy lệnh sau để Build Image
cho ứng dụng Nodejs
:
docker build -t calculator-nodejs .
Lệnh trên sẽ Build
một Docker Image
với tên calculator-nodejs
từ thư mục hiện tại (dấu chấm).
Bước 3: Kiểm tra image
Liệt kê các Image
có trong Docker Host
:
docker images
Bạn sẽ thấy có Image
với tên là calculator-nodejs.
Bước 4: Push image lên Docker Hub (Tùy chọn)
Nếu bạn muốn chia sẻ Docker Image
của mình với người khác hoặc deploy
trên một server
khác, bạn có thể Push Image
lên Docker Hub
.
1. Đăng nhập vào Docker Hub:
docker login
2. Tag Docker image:
# cú pháp docker tag calculator-nodejs <username>/<image_name>:<image_tag> # ví dụ docker tag calculator-nodejs dothiengiang0001/calculator-nodejs:v1
3. Push Docker image lên Docker Hub:
# cú pháp docker push <username>/<image_name>:<image_tag> # ví dụ docker push dothiengiang0001/calculator-nodejs:v1
Thực thi tạo container từ image
Yêu cầu
- Đưa
container
xuống chạy ngầm - Đặt tên cho
container
là calculator-nodejs:v1
- Tạo cổng kết nối thông từ 3000 trên
host
vào cổng 5000 bên trongcontainer
Tạo container từ image đã tạo:
# chạy với tên container tên calculator-nodejs-container qua imagge dothiengiang0001/calculator-nodejs:v1 docker run -d --name calculator-nodejs-container -p 5000:3000 dothiengiang0001/calculator-nodejs:v1 # kiểm tra container docker ps
Test thành quả
Mở trên Ubuntu
bằng lệnh:
curl localhost:5000
Test trên browser google chrome
Thực hiện mở cổng kết nối qua Virtual Box
:
- Lần này chúng ta mở cổng 5000 expose
ra ngoài:
- Trên Google Chrome
chúng ta truy cập 127.0.0.120:5000 như thiết lập trên và xem kết quả:
Kết luận
Trong bài viết này, chúng ta đã đi qua quy trình chi tiết để xây dựng và triển khai một ứng dụng Nodejs
sử dụng Docker
trên Ubuntu Server
từ source code
được clone
từ GitHub
. Các bước từ chuẩn bị mã nguồn, cài đặt Docker
, viết Dockerfile
, xây dựng Image
, kiểm tra Image
, đẩy Image
lên Docker Hub
, và cuối cùng là chạy container
từ Image
đã tạo đều được thực hiện một cách tuần tự và rõ ràng. Với việc sử dụng Docker
, chúng ta không chỉ đảm bảo tính nhất quán trong môi trường triển khai mà còn tăng cường khả năng mở rộng và quản lý ứng dụng dễ dàng hơn.
Tác giả: Đỗ Thiên Giang
Chú ý: Tất cả các bài viết trên TEDU.COM.VN đều thuộc bản quyền TEDU, yêu cầu dẫn nguồn khi trích lại trên website khác.