Cài đặt Node.js

Để cài đặt Node bạn hãy vào trang https://nodejs.org/en/download/ tìm phiên bản thích hợp với hệ điều hành của bạn và cài đặt như ứng dụng bình thường

Nâng cao hơn 1 chút bạn có thể cài đặt nodejs qua thư viện nvm https://github.com/creationix/nvm . Thư viện này giúp bạn cài đặt và quản lý nhiều phiên bản nodejs trên cùng 1 máy . Với người dùng window bạn có thể dùng nvm-windows https://github.com/coreybutler/nvm-windows

Nếu cài đặt nodejs qua nvm bạn có thể tương tác dễ dàng qua CLI. Từ khi tổ chức quản lý Nodejs được thành lập vào năm ngoài với sự tham gia của Linux Foudation, nodejs bắt đầu có kế hoạch ra mắt rõ ràng. Trong kế hoạch đó các bạn sẽ thấy có 2 phiên bản nodejs : LTS và current . Phiên bản LTS là phiên bản hướng đến độ ổn định cao , ít cập nhật các tính năng mới es6 , chỉ tập trung vào sửa lỗi bảo mật cũng như tối ưu hệ thống. Hiện nay (thời điểm viết bài này) phiên bản LTS dừng ở bản 8.12.0. Phiên bản current hay còn gọi là phiên bản experimental luôn được cập nhật liên tục tính năng mới – tốc độ nâng cấp kinh hồn luôn 😐

Docker là gì?

alt text

Định nghĩa Docker

Nó là một công cụ tạo môi trường được “đóng gói” (còn gọi là Container) trên máy tính mà không làm tác động tới môi trường hiện tại của máy, môi trường trong Docker sẽ chạy độc lập. Xem thêm lịch sử hình thành Container

Một số khái niệm
– Docker images : Mỗi khi bạn muốn chạy ứng dụng Docker là thì bạn cần một cái image, cái image này có thể là HĐH Centos hoặc Linux, đã cài sẵn các ứng dụng PHP, Nginx

– Docker registries : Là kho chứa images. Người dùng có thể tạo ra các images của mình và tải lên bất kỳ đâu, miễn là người khác có thấy được, Hầu nết mình thường lên đây tham khảo https://hub.docker.com/

– Docker container : hoạt động giống như một thư mục (directory), chứa tất cả những thứ cần thiết để một ứng dụng có thể chạy được. Mỗi một docker container được tạo ra từ một docker image.

– Dockerfile : là một file chứa tập hợp các lệnh để Docker có thể đọc và thực hiện để đóng gói một image theo yêu cầu người dùng, chúng ta thường làm việc với tập tin này nhất

Khác biệt với máy ảo

Điểm khác biệt chính là các containers sử dụng chung kernel với Host OS nên các thao tác bật, tắt rất nhẹ nhàng, nhanh chóng. Do nó sử dụng chung nhân Linux nên rất có sự khác biệt so với dùng máy ảo Virtuhost

Các lệnh căn bản

  • Pull một image từ Docker Hub
    docker pull {image_name}
  • Liệt kê các images hiện có
    docker images
  • Xóa một image
    docker rmi {image_id/name}
  • Liệt kê các container đang chạy
    docker ps
    docker ps -a #Liệt kê các container đã tắt
  • Xóa một container
    docker rm -f {container_id/name}
  • Đổi tên một container
    docker rename {old_container_name} {new_container_name}
  • Khởi động một container
    docker start {new_container_name}
    docker exec -it {new_container_name} /bin/bash
  • Tạo mới một container, đồng thời khởi động với tùy chọn cổng và volume
    docker run --name {container_name} -p {host_port}:{container_port} -v {/host_path}:{/container_path} -it {image_name} /bin/bash
  • Xem các thay đổi trên container
    docker diff {container_name}
  • Commit các thay đổi trên container và image
    docker commit -m "message" {container_name} {image_name}
  • Save image thành file .tar
    docker save {image_name} > {/host_path/new_image.tar}
  • Tạo một image mới từ file .tar
    cat musashi.tar | docker import - {new_image_name}:latest
  • Xem lịch sử các commit trên image
    docker history {image_name}
  • Khôi phục lại images từ IMAGE_ID
    docker tag {iamge_id} {image_new_name}:{tag}
  • Build một image từ container
    docker build -t {container_name} .
    Dấu . ở đây ám chỉ Dockerfile đang nằm trong thư mục hiện tại.