Docker là một dự án mã nguồn mở cung cấp nền tảng mở cho các nhà phát triển và quản trị viên hệ thống để xây dựng, đóng gói và chạy các ứng dụng ở bất kỳ đâu dưới dạng một vùng chứa nhẹ. Docker tự động triển khai các ứng dụng bên trong các vùng chứa phần mềm.
Nodejs là một môi trường chạy JavaScript mã nguồn mở. Đây là môi trường chạy đa nền tảng, có thể cài đặt trên Linux, Windows, MacOS, FreeBSD, v.v. Nodejs rất hữu ích để xây dựng cả ứng dụng máy chủ và máy tính để bàn.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách tạo một hình ảnh docker cho một dự án ứng dụng Nodejs Express hiện có trong Ubuntu 18.04. Chúng ta sẽ tìm hiểu về dockerizing một ứng dụng Nodejs, sau đó triển khai ứng dụng dưới dạng một container tới môi trường docker bằng cách sử dụng tập lệnh docker-compose.
Trước khi cài đặt docker-ce, hãy cài đặt các phụ thuộc docker cần thiết bằng lệnh apt.
Bây giờ hãy thêm khóa docker và kho lưu trữ bằng cách chạy các lệnh bên dưới.
Cài đặt gói docker-ce.
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ docker và cho phép dịch vụ này khởi chạy mỗi khi khởi động hệ thống.
Tiếp theo, chúng tôi sẽ cấp cho người dùng thông thường các quyền để chạy và quản lý vùng chứa docker.
Thêm người dùng mới có tên 'mohammad' và thêm vào nhóm docker.
Bây giờ hãy đăng nhập với tư cách là người dùng 'mohammad' và chạy docker container hello-world.
Và bạn sẽ nhận được kết quả như hiển thị bên dưới.
Tải xuống phiên bản docker-compose 1.22.0 mới nhất bằng lệnh curl vào thư mục '/usr/local/bin', sau đó thực thi bằng lệnh chmod.
Chạy các lệnh bên dưới.
Và phiên bản docker-compose mới nhất đã được cài đặt, hãy kiểm tra bằng cách chạy lệnh docker-compose bên dưới.
Sau đây là kết quả.
Đăng nhập vào người dùng 'mohammad'.
Tạo một thư mục mới có tên là 'project' và đi đến thư mục đó.
Bây giờ hãy tạo một ứng dụng nodejs hello-word đơn giản bằng lệnh 'express' bên dưới.
Lưu ý:
Đảm bảo nodejs, npm và các gói 'express-generator' đã được cài đặt trên hệ thống.
Và bạn sẽ nhận được ứng dụng express nodejs đơn giản trên thư mục 'hakase-app'.
Tiếp theo, chúng ta sẽ xây dựng hình ảnh docker tùy chỉnh cho ứng dụng nodejs 'hakase-app'.
Trong thư mục 'project', tạo một 'Dockerfile' mới bằng vim.
Dán cấu hình hình ảnh docker sau vào đó.
Lưu và thoát.
Chúng tôi đang tạo một hình ảnh docker tùy chỉnh mới cho ứng dụng nodejs của mình với các thông số kỹ thuật bên dưới.
Tạo tệp yml mới 'docker-compose.yml' bằng vim.
Dán cấu hình sau vào đó.
Lưu và thoát.
Chúng tôi đang tạo một dịch vụ docker mới có tên là 'hakase-app' và đồng thời chúng tôi đang xây dựng hình ảnh docker tùy chỉnh dựa trên 'Dockerfile' trên thư mục dự án và sẽ tự động gắn các tệp ứng dụng hakase-app.
Thiết lập Nodejs Express đã hoàn tất.
Xây dựng hình ảnh và tạo dịch vụ docker hakase-app bằng lệnh docker-compose bên dưới.
Bây giờ bạn sẽ nhận được kết quả như hiển thị bên dưới.
Và khi hoàn tất, hãy chạy dịch vụ docker 'hakase-app'.
Sau đây là kết quả.
Hình ảnh docker tùy chỉnh cho ứng dụng Nodejs của chúng tôi đã được tạo và dịch vụ docker hakase-app đã hoạt động.
Một hình ảnh docker tùy chỉnh mới cho ứng dụng Nodejs của chúng tôi đã được tạo.
Hiển thị dịch vụ docker đang chạy.
Ứng dụng Nodejs đang hoạt động trên cổng máy chủ 3000.
Mở trình duyệt web và nhập địa chỉ IP của máy chủ cùng với cổng.
http://10.0.15.2:3000/
Và bạn sẽ nhận được trang express đơn giản.
Việc Dockerizing ứng dụng Nodejs Express trên Ubuntu 18.04 đã hoàn tất thành công.
Nodejs là một môi trường chạy JavaScript mã nguồn mở. Đây là môi trường chạy đa nền tảng, có thể cài đặt trên Linux, Windows, MacOS, FreeBSD, v.v. Nodejs rất hữu ích để xây dựng cả ứng dụng máy chủ và máy tính để bàn.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách tạo một hình ảnh docker cho một dự án ứng dụng Nodejs Express hiện có trong Ubuntu 18.04. Chúng ta sẽ tìm hiểu về dockerizing một ứng dụng Nodejs, sau đó triển khai ứng dụng dưới dạng một container tới môi trường docker bằng cách sử dụng tập lệnh docker-compose.
Điều kiện tiên quyết
- Ubuntu 18.04
- Quyền root
Những việc chúng ta sẽ làm
- Cài đặt Docker CE
- Cài đặt Docker-Compose
- Thiết lập dự án Nodejs Express
- Xây dựng dự án
- Kiểm tra
Bước 1 - Cài đặt Docker CE
Trong hướng dẫn này, chúng ta sẽ cài đặt docker-ce community edition từ kho lưu trữ docker. Chúng ta sẽ cài đặt docker-ce community edition và docker-compose hỗ trợ tệp compose phiên bản 3.Trước khi cài đặt docker-ce, hãy cài đặt các phụ thuộc docker cần thiết bằng lệnh apt.
Mã:
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
Mã:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Cài đặt gói docker-ce.
Mã:
sudo apt install docker-ce
Mã:
systemctl start docker
systemctl enable docker
Tiếp theo, chúng tôi sẽ cấp cho người dùng thông thường các quyền để chạy và quản lý vùng chứa docker.
Thêm người dùng mới có tên 'mohammad' và thêm vào nhóm docker.
Mã:
useradd -m -s /bin/bash mohammad
usermod -a -G docker mohammad
Mã:
su - mohammad
docker run hello-world
Bước 2 - Cài đặt Docker-Compose
Trong bước này, chúng ta sẽ cài đặt docker-compose theo cách thủ công từ tệp nhị phân có thể tải xuống từ GitHub. Chúng tôi sẽ cài đặt phiên bản docker-compose mới nhất hỗ trợ compose v3.Tải xuống phiên bản docker-compose 1.22.0 mới nhất bằng lệnh curl vào thư mục '/usr/local/bin', sau đó thực thi bằng lệnh chmod.
Chạy các lệnh bên dưới.
Mã:
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Mã:
docker-compose version
Bước 3 - Thiết lập dự án Nodejs Express
Trong phần này, chúng ta sẽ cấu hình môi trường ứng dụng Nodejs. Chúng ta sẽ sử dụng ứng dụng nodejs đơn giản có thể được tạo bằng 'express-generator'.Đăng nhập vào người dùng 'mohammad'.
Mã:
su - mohammad
Mã:
mkdir -p project
cd project
Mã:
express hakase-app
Đảm bảo nodejs, npm và các gói 'express-generator' đã được cài đặt trên hệ thống.
Và bạn sẽ nhận được ứng dụng express nodejs đơn giản trên thư mục 'hakase-app'.
Tiếp theo, chúng ta sẽ xây dựng hình ảnh docker tùy chỉnh cho ứng dụng nodejs 'hakase-app'.
Trong thư mục 'project', tạo một 'Dockerfile' mới bằng vim.
Mã:
vim Dockerfile
Mã:
FROM node:8.11.4-alpineRUN mkdir -p /srcRUN npm install express-generator -gWORKDIR /srcADD hakase-app/package.json /src/package.jsonRUN npm installEXPOSE 3000CMD node hakase-app/bin/www
Chúng tôi đang tạo một hình ảnh docker tùy chỉnh mới cho ứng dụng nodejs của mình với các thông số kỹ thuật bên dưới.
- Hình ảnh tùy chỉnh dựa trên phiên bản nodejs image 8.11.4 alpine chính thức.
- Chúng tôi đang tạo một thư mục mới cho dự án '/src' của mình.
- Cài đặt 'express-generator' vào hình ảnh tùy chỉnh.
- Thêm tệp 'package.json' chứa hồ sơ ứng dụng và các gói cần thiết vào thư mục '/src'.
- Cài đặt tất cả nodejs các gói cần thiết cho dự án, dựa trên tệp 'package.json'.
- Xuất cổng 3000 bằng lệnh exec start mặc định 'node hakase-app/bin/www'.
Tạo tệp yml mới 'docker-compose.yml' bằng vim.
Mã:
vim docker-compose.yml
Mã:
version: '3'services: hakase-app: build: . volumes: - ./hakase-app:/src/hakase-app ports: - "3000:3000" restart: always
Chúng tôi đang tạo một dịch vụ docker mới có tên là 'hakase-app' và đồng thời chúng tôi đang xây dựng hình ảnh docker tùy chỉnh dựa trên 'Dockerfile' trên thư mục dự án và sẽ tự động gắn các tệp ứng dụng hakase-app.
Thiết lập Nodejs Express đã hoàn tất.
Bước 4 - Xây dựng và chạy dự án
Đăng nhập với tư cách là người dùng 'mohammad' và đi tới thư mục 'project'
Mã:
su - mohammad
cd project/
Mã:
docker-compose build
Và khi hoàn tất, hãy chạy dịch vụ docker 'hakase-app'.
Mã:
docker-compose up -d
Hình ảnh docker tùy chỉnh cho ứng dụng Nodejs của chúng tôi đã được tạo và dịch vụ docker hakase-app đã hoạt động.
Bước 5 - Kiểm tra
Hiển thị hình ảnh docker khả dụng trên máy chủ.
Mã:
hình ảnh docker-compose
hình ảnh docker
Một hình ảnh docker tùy chỉnh mới cho ứng dụng Nodejs của chúng tôi đã được tạo.
Hiển thị dịch vụ docker đang chạy.
Mã:
docker-compose ps
docker ps
Ứng dụng Nodejs đang hoạt động trên cổng máy chủ 3000.
Mở trình duyệt web và nhập địa chỉ IP của máy chủ cùng với cổng.
http://10.0.15.2:3000/
Và bạn sẽ nhận được trang express đơn giản.
Việc Dockerizing ứng dụng Nodejs Express trên Ubuntu 18.04 đã hoàn tất thành công.