Bài viết này sẽ chỉ cho bạn cách triển khai ứng dụng Node của bạn trong bộ chứa Docker.
Lưu ý: Hướng dẫn này giả định rằng bạn đã cài đặt Docker và sẵn sàng để sử dụng.
Bước 1: Tạo ứng dụng Nút của bạn
Tạo một thư mục gọi là src
. Chúng tôi sẽ sử dụng thư mục đó. Tạo một tệp có tên src/package.json
như sau:
{
"name": "hello_world",
"private": true,
"version": "0.0.1",
"description": "Hello world Example",
"author": "",
"dependencies": {
"express": "3.2.4"
}
}
Bây giờ tạo một src/index.js
chứa như sau:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello from Docker\n');
});
app.listen(8080);
console.log('Running on http://localhost:8080');
Xin lưu ý rằng bạn có thể thay đổi cổng 8080
thành bất cứ điều gì bạn muốn, nhưng với ví dụ này, chúng tôi sẽ đưa ra cổng này để sử dụng cho ứng dụng của chúng tôi. Khi bạn đã tạo hai tệp này, bạn có thể tiến hành bước tiếp theo.
Bước 2: Tạo Dockerfile
"Dockerfile" cho phép bạn xây dựng và triển khai hình ảnh Docker dựa trên bộ hướng dẫn bạn đã cung cấp trong đó. Tạo một tệp có tên Dockerfile
và điền vào đó với nội dung sau:
FROM centos:latest
MAINTAINER Name Here <username@localhost>
RUN rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
RUN yum install nodejs npm -y
COPY ./src /opt/src
RUN cd /opt/src; npm install
EXPOSE 8080
CMD ["node", "/opt/src/index.js"]
Giải trình:
FROM centos:latest
Điều này sẽ sử dụng một hình ảnh được gọi là centos
. Nếu không có hình ảnh có sẵn trên máy chủ của bạn, Docker sẽ lấy một cái từ kho lưu trữ của nó.
MAINTAINER Name Here <username@localhost>
Hướng dẫn này cho phép bạn đặt tác giả cho hình ảnh được tạo.
RUN rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
RUN yum install nodejs npm -y
…
RUN cd /opt/src; npm install
"CHẠY" sẽ thực thi các lệnh shell được đưa ra. Trong ví dụ này, nó sẽ tải xuống vòng / phút phát hành epel và cài đặt nó, đồng thời cài đặt nodejs và npm từ kho lưu trữ của nó. Sau thao tác tiếp theo, nó sẽ cd vào thư mục dự án và chạy npm install
để cài đặt các phụ thuộc cho ứng dụng của bạn.
COPY ./src /opt/src
Sao chép thư mục (và tệp) từ máy chủ lưu trữ vào thùng chứa.
EXPOSE 8080
Mở cổng 8080 cho thế giới bên ngoài sử dụng.
CMD ["node", "/opt/src/index.js"]
CMD
sẽ cung cấp thực thi mặc định cho container.
Khi bạn đã tạo tệp chính xác như cách nó được hiển thị ở trên, bạn có thể tiến hành bước tiếp theo.
Bước 3: Xây dựng hình ảnh
Để xây dựng hình ảnh của bạn, hãy chạy lệnh sau:
docker build -t name/application .
Điều này sẽ tạo ra một hình ảnh với một tên kho lưu trữ của name/application
. Nếu không có lỗi, bạn có thể tiến hành bước tiếp theo.
Bước 4: Triển khai và kiểm tra ứng dụng
Bây giờ mọi thứ đã được thiết lập, bạn có thể chạy hình ảnh của mình bằng cách chạy như sau:
docker run -p 49160:8080 -d name/application
Để kiểm tra ứng dụng của bạn, hãy chạy lệnh sau từ máy chủ:
curl http://172.17.42.1:49160/
Nếu bạn thấy Hello from Docker
thì bạn đã triển khai thành công hình ảnh Docker của bạn. Nếu bạn muốn kiểm tra điều này với trình duyệt của mình, hãy truy cập http://[SERVER_IP]:49160
từ bên trong trình duyệt của bạn (thay thế địa chỉ IP tương ứng) và bạn sẽ thấy thông báo tương tự.