1. Trang chủ
  2. » Cao đẳng - Đại học

Tìm hiểu docker và xây dựng ứng dụng

59 35 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • LỜI CẢM ƠN

  • LỜI NHẬN XÉT CỦA GIẢNG VIÊN

  • MỤC LỤC

  • DANH MỤC HÌNH

  • TÓM TẮT ĐỒ ÁN 2

  • Chương 1: Kiến thức về Docker

    • 1.1. Giới thiệu sơ lược về Docker

      • 1.1.1. Docker là gì?

      • 1.1.2. Lịch sử ra đời

      • 1.1.3. Roadmap phát triển

    • 1.2. Kiến trúc tổng thể

      • 1.2.1 Docker Engine

      • 1.2.2. Docker Hub

      • 1.2.3. Một số thuật ngữ

    • 1.3. Cách thức hoạt động

    • 1.4. Docker mang lại lợi ích gì? Cho ai? Trong hoàn cảnh nào?

      • 1.4.1. Lợi ích và hoàn cảnh sử dụng

      • 1.4.2. Ai sử dụng Docker

    • 1.5. Một số công cụ phổ biến

      • 1.5.1 Docker Compose

      • 1.5.2. Docker Swarm

    • 1.6. So sánh Docker với các công nghệ tương tự

  • Chương 2: Áp dụng Docker

    • 2.1. Setup Dockerfile 

      • 2.1.1. NestJs – backend

      • Giải thích thông số 

      • Run project với nestjs 

      • 2.1.2. VueJs – frontend

      • Run Project cho VueJs

    • 2.2. Setup Docker-Compose

      • 2.2.1. Quy trình cơ bản

      • 2.2.2. Docker-compose file

        • Ghi chú:

  • Chương 3: Phát triển Website học tiếng anh

    • 3.1. Mô tả ứng dụng

    • 3.2. Sơ đồ Use case

      • 3.2.1. Tổng quát

      • 3.2.2. Đặc tả Use Case

        • 3.2.2.1. Quản lý học viên

        • 3.2.2.2. Quản lý khóa học

        • 3.2.2.3. Quản lý tài khoản người dùng

        • 3.2.2.4. Quản lý Speaker

        • 3.2.2.5. Tìm kiếm khóa học

        • 3.2.2.6. Quản lý khóa học

          •     User

          •     Speaker

        • 3.2.2.7. Quên mật khẩu

        • 3.2.2.8. Cập nhật thông tin tài khoản

        • 3.2.2.9. Livestream

        • 3.2.2.10. Quản lý buổi học

        • 3.2.2.11. Xem Livestream

        • 3.2.2.12. Đăng ký trở thành Speaker

    • 3.3. Sơ đồ Lớp

  • Chương 4: Kết luận và Hướng phát triển

    • 4.1. Kết quả đạt được

    • 4.2. Hạn chế

    • 4.3. Hướng phát triển

  • Chương 5: Tài liệu tham khảo

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM Nguyễn Thanh Thọ – 17521093 Đồng Việt Tùng - 17521231 ĐỒ ÁN Tìm hiểu Docker xây dựng ứng dụng KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN Ths Nguyễn Cơng Hoan TP HỒ CHÍ MINH, 2021 LỜI CẢM ƠN Lời đầu tiên, chúng em xin chân thành cảm ơn thầy Nguyễn Công Hoan – giảng viên phụ trách – hướng dẫn tận tình chúng em thời gian thực đồ án Nhờ có giúp đỡ tận tình thầy chúng em hồn thành đồ án cách tốt Tuy chúng em cố gắng hạn chế sai sót hết mức kiến thức cịn hạn hẹp nên chúng em khó tránh khỏi sai sót q trình thực lúc báo cáo đồ án Do đó, chúng em mong nhận ý kiến đóng góp từ thầy để chúng em khắc phục, sửa chữa Chúng em xin chân thành cảm ơn thầy! LỜI NHẬN XÉT CỦA GIẢNG VIÊN MỤC LỤC DANH MỤC HÌNH Hình 1.1: Kiến trúc Docker .9 Hình 1.2: Trang Docker hub 10 Hình 1.3: So sánh kiến trúc container Virtual Machines 11 Hình 1.4: Kiến trúc phân lớp container .12 Hình 2.1: Build dockerfile cho VueJs 18 Hình 2.2: Run dockerfile 18 Hình 3.1: Sơ đồ Use case tổng quát 23 Hình 3.2: Đặc tả Use case quản lý học viên 24 Hình 3.3: Đặc tả Use case quản lý khóa học 26 Hình 3.4: Đặc tả Use case quản lý tài khoản người dùng 28 Hình 3.5: Đặc tả Use case quản lý speaker 30 Hình 3.6: Đặc tả Use case tìm kiếm khóa học 31 Hình 3.7: Đặc tả Use case quản lý khóa học cho User 33 Hình 3.8: Đặc tả Use case quản lý khóa học cho Speaker .35 Hình 3.9: Đặc tả Use case quên mật .36 Hình 3.10: Đặc tả Use case cập nhật thông tin tài khoản 38 Hình 3.11: Đặc tả Use case livestream 39 Hình 3.12: Đặc tả Use case quản lý buổi học 40 Hình 3.13: Đặc tả Use case xem livestream 41 Hình 3.14: Đặc tả Use case đăng ký trở thành speaker 43 Hình 3.15: Sơ đồ lớp .44 TÓM TẮT ĐỒ ÁN Hiện nay, Docker dần trở thành công cụ khơng thể thiếu cho lập trình viên, đặc biệt lập trình viên chun web Do đó, mục tiêu đồ án tìm hiểu Docker, kiến trúc công nghệ chức bật Docker Sau thơng qua việc tích hợp Docker vào trình phát triển website để làm bật lên ưu điểm Docker Website dùng làm ứng dụng minh họa cho công nghệ Docker website học tiếng Anh Trong trình phát triển, chúng em sử dụng máy với hệ điều hành môi trường phát triển khác Sau sử dụng Docker để hỗ trợ cho việc phát triển website Từ rút lợi ích mà Docker mang lại Sau trình sử dụng Docker đồ án 2, chúng em nhận thấy việc sử dụng Docker giúp chúng em giảm thiểu đáng kể lỗi khơng đáng có bất đồng môi trường cài đặt, kiểm thử, phát triển Chương 1: Kiến thức Docker 1.1 Giới thiệu sơ lược Docker 1.1.1 Docker gì? Docker tảng cho nhà phát triển sysadmin để phát triển, triển khai ứng dụng với container Nó cho phép tạo môi trường độc lập tách biệt để khởi chạy phát triển ứng dụng môi trường gọi container Khi cần triển khai lên server cần run container Docker ứng dụng bạn hoạt động 1.1.2 Lịch sử đời • Docker thành lập ông Solomon Hykes and Sebastien Pahl Nó sản phẩm nhóm startup Y Combinator phát triển cơng bố 2011 • Lúc đầu Docker project dự án nội công ty dotCloud, platform-as-aservice Pháp • Lần docker công bố dạng open-source tháng năm 2013 • Từ phiên 0.9 docker dùng component riêng biết Go ( Golang ) để thay cho việc dùng LXC(linux system) làm môi trường thực thi • Vào năm 2017 docker tạo Moby project để phát triển vấn đề đa nhân thay cho việc dùng docker engine 1.1.3 Roadmap phát triển • Tháng 9-2013 Red hat docker công bố hợp tác xoay quanh Fedora, RHEL, OpenShift • Tháng 10-2014 cơng bố tích hợp Docker engine vào windows server hỗ trợ native cho docker client windows • Tháng 11-2014 Docker công bố hợp tác với Stratoscale(công ty làm data center operating system Vmware sản phẩm).Ngồi ra, Docker container support cho EC2 Amazon • Tháng 12-2014, IBM cơng bố hợp tác với Docker tích hợp docker vào Cloud IBM • Tháng 6-2015, Docker số cơng ty như: CoreOS, Google, Microsoft, AWS, công bố liên kết với để cung cấp giải pháp tiêu chuẩn hệ điều hành cho software containers • Tháng 5-2016 nghiên cứu cho thấy tổ chức tham gia đónng góp cho docker là: The Docker Teamm Cisco, Google, Huawei,IBM, Microsoft and Red Hat • Tháng 6-2016, Microsoft cơng bố docker sử dụng Windown 10 • Tháng 5-2019 WSL2 windows hỗ trợ chạy Docker 1.2 Kiến trúc tổng thể Hình 1.1: Kiến trúc Docker Docker có thành phần chính: Docker Engine Docker Hub Docker Engine giải pháp ảo hóa (virtualization) dựa cơng nghệ container, cịn Docker Hub platform Software-as-a-Service để chia sẻ images 1.2.1 Docker Engine Docker Engine ứng dụng dựa kiến trúc client-server với thành phần chính: • Docker daemon đóng vai trị server Docker daemon build, run distribute docker container • Một REST API đóng vai trị interface để giao tiếp với docker daemon • Một command line interface (CLI) đóng vai trị client Docker client giao tiếp với docker daemon thông qua REST API, kết nối với thông qua UNIX socket qua giao tiếp mạng Việc giao phương thức cho phép Docker Client Docker Daemon chạy hệ thống khác hệ thống 1.2.2 Docker Hub Docker hub nơi lưu trữ image (public private) Ở người dùng chia sẻ customized image Ngồi ra, người dùng tìm tải image thơng qua docker client Hình 1.2: Trang Docker hub 1.2.3 Một số thuật ngữ • Image: Là package chứa tất thông tin, thư viện, framework, cần thiết để tạo container Thông thường, image tạo dựa image cha (based image) – image cha cung cấp sẵn docker • Container: Về bản, container công nghệ ảo hóa thay phải giả lập phần cứng Vmware container chia sẻ hệ điều hành với host Mỗi container chạy độc lập với container khác hệ thống mà docker chạy Do người dùng thêm, xóa, sửa container; Kết nối với network; Thậm chí tạo image dựa trạng thái container mà không ảnh hưởng tới hệ thống host container khác Hình 1.3: So sánh kiến trúc container Virtual Machines • Daemon: loại chương trình hệ điều hành Like-Unix hoạt động ẩn mà không cần kiểm sốt user • Docker Registry: nơi lưu trữ riêng Docker Images Images push vào registry client pull images từ registry Có thể sử dụng registry riêng bạn registry nhà cung cấp : AWS, Google Cloud, Microsoft Azure 1.3 Cách thức hoạt động Để cho container chạy process độc lập chiếm khơng gian docker sử dụng kiến trúc phân lớp (layer) Những layer gọi layer trung gian, chúng tạo từ câu lệnh Dockerfile build docker image Ví dụ: FROM node:stable COPY /usr/src/app 10 Non-Functional Requirement 3.2.2.7 Quên mật Hình 3.9: Đặc tả Use case quên mật Use case ID Use case name Description Actor(s) Priority 45 Trigger Pre-Condition(s) Post-Condition(s) Basic Flow Alternative Flow Exception Flow Business Rules Non-Functional Requirement 46 3.2.2.8 Cập nhật thơng tin tài khoản Hình 3.10: Đặc tả Use case cập nhật thông tin tài khoản Use case ID Use case name Description Actor(s) Priority 47 Trigger Pre-Condition(s) Post-Condition(s) Basic Flow Alternative Flow Exception Flow Business Rules 48 Non-Functional Requirement 3.2.2.9 Livestream Hình 3.11: Đặc tả Use case livestream Use case ID Use case name Description Actor(s) Priority Trigger 49 Pre-Condition(s) Post-Condition(s) Basic Flow Alternative Flow Exception Flow Business Rules Non-Functional Requirement 50 3.2.2.10 Quản lý buổi học Hình 3.12: Đặc tả Use case quản lý buổi học Use case ID Use case name Description Actor(s) Priority Trigger 51 Pre-Condition(s) Post-Condition(s) Basic Flow Alternative Flow Exception Flow Business Rules Non-Functional Requirement 52 3.2.2.11 Xem Livestream Hình 3.13: Đặc tả Use case xem livestream Use case ID Use case name Description Actor(s) Priority Trigger Pre-Condition(s) 53 Post-Condition(s) Basic Flow Alternative Flow Exception Flow Business Rules 54 Non-Functional Requirement 3.2.2.12 Đăng ký trở thành Speaker Hình 3.14: Đặc tả Use case đăng ký trở thành speaker Use case ID Use case name 55 Description Actor(s) Priority Trigger Pre-Condition(s) Post-Condition(s) Basic Flow Alternative Flow Exception Flow 56 Business Rules Non-Functional Requirement 3.3 Sơ đồ Lớp Hình 3.15: Sơ đồ lớp 57 Chương 4: Kết luận Hướng phát triển 4.1 Kết đạt - Website có chức - Chúng em áp dụng thành cơng việc sử dụng Docker vào q trình phát triển 4.2 Hạn chế - Do thời gian có hạn nên cịn nhiều chức chưa hồn thành - Website chạy localhost 4.3 Hướng phát triển - Hoàn thành chức chưa phát triển - Triển khai Website lên server cấp domain cho website 58 Chương 5: Tài liệu tham khảo [1] https://docs.docker.com/ [2] https://docs.microsoft.com/en-us/dotnet/architecture/microservices/containerdocker-introduction/docker-terminology [3] A Survey on Docker and its Significance in Cloud Environment - Amith Raj M.P , Ashwini M.L , Bhagyashree Das , Vaidehi M [4] https://viblo.asia/p/tim-hieu-chi-tiet-ve-docker-swarm-phan-1eW65GW795DO#_kien-truc-docker-swarm 59 ... Sau sử dụng Docker để hỗ trợ cho việc phát triển website Từ rút lợi ích mà Docker mang lại Sau trình sử dụng Docker đồ án 2, chúng em nhận thấy việc sử dụng Docker giúp chúng em giảm thiểu đáng... dùng docker compose gồm ba bước: Xác định môi trường ứng dụng bạn Dockerfile để lưu trữ nơi Xác định dịch vụ tạo nên ứng dụng bạn docker- compose.yml để chúng chạy môi trường biệt lập Chạy docker- compose... sẻ images 1.2.1 Docker Engine Docker Engine ứng dụng dựa kiến trúc client-server với thành phần chính: • Docker daemon đóng vai trị server Docker daemon build, run distribute docker container

Ngày đăng: 05/09/2021, 20:49

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Kiến trúc Docker - Tìm hiểu docker và xây dựng ứng dụng
Hình 1.1 Kiến trúc Docker (Trang 8)
Hình 1.2: Trang Docker hub - Tìm hiểu docker và xây dựng ứng dụng
Hình 1.2 Trang Docker hub (Trang 9)
Hình 1.3: So sánh kiến trúc của container và Virtual Machines - Tìm hiểu docker và xây dựng ứng dụng
Hình 1.3 So sánh kiến trúc của container và Virtual Machines (Trang 10)
Hình 1.4: Kiến trúc phân lớp của container - Tìm hiểu docker và xây dựng ứng dụng
Hình 1.4 Kiến trúc phân lớp của container (Trang 11)
Container. Docker Compose cho phép ta cấu hình các container trong một file YAML duy nhất và chạy tất cả các container chỉ với một câu lệnh - Tìm hiểu docker và xây dựng ứng dụng
ontainer. Docker Compose cho phép ta cấu hình các container trong một file YAML duy nhất và chạy tất cả các container chỉ với một câu lệnh (Trang 12)
Hình 2.1: Build dockerfile cho VueJs - Tìm hiểu docker và xây dựng ứng dụng
Hình 2.1 Build dockerfile cho VueJs (Trang 18)
Hình 2.2: Run dockerfile - Tìm hiểu docker và xây dựng ứng dụng
Hình 2.2 Run dockerfile (Trang 19)
Hình 3.1: Sơ đồ Use case tổng quát - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.1 Sơ đồ Use case tổng quát (Trang 24)
Hình 3.3: Đặc tả Use case quản lý khóa học - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.3 Đặc tả Use case quản lý khóa học (Trang 28)
Hình 3.4: Đặc tả Use case quản lý tài khoản người dùng - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.4 Đặc tả Use case quản lý tài khoản người dùng (Trang 31)
Hình 3.5: Đặc tả Use case quản lý speaker - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.5 Đặc tả Use case quản lý speaker (Trang 34)
Hình 3.6: Đặc tả Use case tìm kiếm khóa học - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.6 Đặc tả Use case tìm kiếm khóa học (Trang 37)
Hình 3.7: Đặc tả Use case quản lý khóa học cho User - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.7 Đặc tả Use case quản lý khóa học cho User (Trang 40)
Hình 3.8: Đặc tả Use case quản lý khóa học cho Speaker - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.8 Đặc tả Use case quản lý khóa học cho Speaker (Trang 43)
Hình 3.9: Đặc tả Use case quên mật khẩu - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.9 Đặc tả Use case quên mật khẩu (Trang 45)
Hình 3.10: Đặc tả Use case cập nhật thông tin tài khoản - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.10 Đặc tả Use case cập nhật thông tin tài khoản (Trang 47)
Hình 3.11: Đặc tả Use case livestream - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.11 Đặc tả Use case livestream (Trang 49)
Hình 3.12: Đặc tả Use case quản lý buổi học - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.12 Đặc tả Use case quản lý buổi học (Trang 51)
Hình 3.13: Đặc tả Use case xem livestream - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.13 Đặc tả Use case xem livestream (Trang 53)
Hình 3.14: Đặc tả Use case đăng ký trở thành speaker - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.14 Đặc tả Use case đăng ký trở thành speaker (Trang 55)
Hình 3.15: Sơ đồ lớp - Tìm hiểu docker và xây dựng ứng dụng
Hình 3.15 Sơ đồ lớp (Trang 57)

TỪ KHÓA LIÊN QUAN

w