Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
2,88 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -o0o - ISO 9001:2015 ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN HẢI PHÒNG 2019 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -o0o - TÌM HIỂU GIẢI PHÁP ẢO HĨA DOCKER VÀ ỨNG DỤNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ Thơng tin HẢI PHỊNG - 2019 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -o0o - TÌM HIỂU GIẢI PHÁP ẢO HĨA DOCKER VÀ ỨNG DỤNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ Thông tin Sinh viên thực hiện: Đinh Hải Long Mã số sinh viên: 1412101066 Giảng viên hướng dẫn: TS Ngơ Trường Giang HẢI PHỊNG - 2019 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -o0o - NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP Sinh viên: Đinh Hải Long Lớp: CT1802 Mã số: 1412101099 Ngành: Công nghệ Thông tin Tên đề tài: Tìm hiểu giải pháp ảo hóa docker ứng dụng Tìm hiểu giải pháp ảo hóa Docker ứng dụng LỜI CẢM ƠN Trong trình làm đồ án vừa qua dẫn nhiệt tình thầy TS Ngơ Trường Giang – Trường Đại học Dân lập Hải Phịng , em hồn thành đồ án Mặc dù em cố gắng với tận tâm thầy, thời gian khả nên đồ án em cịn khơng tránh điều thiếu sót Em xin chân thành bày tỏ lòng biết ơn sâu sắc đến thầy Ngơ Trường Giang tận tình bảo, hướng dẫn giành thời gian quý báu cho em thời gian qua để em hồn thành đồ án thời hạn Em xin cảm ơn tất thầy cô giáo khoa Cơng nghệ thơng tin truyền đạt cho em kiến thức tảng, chuyên ngành, chuyên mơn chun sâu vững năm qua để em hồn đồ án Em xin cảm ơn Trường Đại Học Dân Lập Hải Phịng khơng ngừng hỗ trợ tạo điều kiện tốt năm vừa qua để em học thực tốt đồ án Em xin cảm ơn gia đình, bạn bè hỗ trợ cổ vũ cho em suốt trình học tập làm đồ án để em hồn thành khóa học đồ án theo quy định Em xin chân thành cảm ơn! Đinh Hải Long _ CT1802 Tìm hiểu giải pháp ảo hóa Docker ứng dụng MỤC LỤC LỜI CẢM ƠN DANH MỤC HÌNH MINH HỌA MỞ ĐẦU CHƯƠNG 1: Tổng quan ảo hóa 1.1 Tổng quan ảo hóa 1.1.1 Ảo hóa 1.1.2 Phân loại ảo hóa 1.1.3 Các công nghệ giúp ảo hóa hệ thống 15 1.2 Phần mềm tự nguồn mở 28 1.2.1 Lịch sử hình thành 29 1.2.2 Những lý nên chọn phần mềm tự nguồn mở .31 CHƯƠNG 2: Công nghệ ảo hóa Docker 33 2.1 Khái niệm cơng nghệ ảo hóa Docker .33 2.1.1 Container 33 2.1.2 Công nghệ Docker 34 2.1.3 Các thành phần 35 2.1.4 Một số khái niệm 36 2.2 Cài đặt Docker 41 2.2.1 Cài đặt Docker 41 2.2.2 Cài đặt Docker compose .46 CHƯƠNG 3: Thử nghiệm ảo hóa ứng dụng với Docker 48 3.1 Một số lệnh với Docker 48 3.2 Tạo image push lên hub.docker.com 49 3.3 Chạy image docker .52 KẾT LUẬN 56 TÀI LIỆU THAM KHẢO 57 Đinh Hải Long _ CT1802 Tìm hiểu giải pháp ảo hóa Docker ứng dụng DANH MỤC HÌNH MINH HỌA Hình 1-1 Ảo hóa network Hình 1-2 Full-virtualization 12 Hình 1-3 Paravirtualization 12 Hình 1-4 Hypervisor 13 Hình 1-5 Docker 14 Hình 1-6 Mơ hình lớp tương tác hệ thống VMs 16 Hình 1-7 Mơ hình cân tải Clustering 19 Hình 1-8 RAID 22 Hình 1-9 RAID 23 Hình 1-10 RAID 24 Hình 1-11 Raid song hành 25 Hình 1-12 Raid ghép đơi (Mirror) 26 Hình 1-13 Mơ hình lưu trữ SAN 27 Hình 2-1 Hypervisor 35 Hình 2-2 Docker 35 Hình 2-3 Mơ hình máy chủ bình thường 37 Hình 2-4 Mơ hình máy ảo VMs 38 Hình 2-5 Mơ hình ảo hóa container 39 Hình 2-6 Hệ thống file cắt lớp Container 40 Hình 2-7 Sự khác biệt Docker VMs 40 Hình 2-8 Khóa GPG cho kho lưu trữ Docker 42 Hình 2-9 Thêm kho lưu trữ Docker 42 Hình 2-10 Cập nhật cở sở liệu 43 Hình 2-11 Cập nhật sở liệu 43 Hình 2-12 Cài đặt Docker 44 Hình 2-13 Hello-world 44 Hình 2-14 Lỗi khơng có tiền tố sudo 45 Hình 2-15 Giải pháp cho tiền tố sudo 45 Hình 2-16 Câu lệnh không cần tiền tố sudo 46 Hình 2-17 Kiểm tra version docker compose 47 Hình 3-1 Dockerfile 49 Hình 3-2 Build image 51 Hình 3-3 Push image 51 Hình 3-4 Image push lên hub.docker.com 52 Hình 3-5 Cài đặt wordpress 54 Hình 3-6 Màn khởi động wordpress 54 Hình 3-7 Màn thông tin trang chuẩn bị tạo 55 Đinh Hải Long _ CT1802 Tìm hiểu giải pháp ảo hóa Docker ứng dụng MỞ ĐẦU Ảo hóa cơng nghệ cho phép chạy đồng thời nhiều VM (Virtual Machine) phần cứng vật lý Cùng chia tài nguyên phần cứng quản lý lớp ảo hóa (Hypervisor), quản lý cấp phát tài nguyên hợp lý, tránh lãng phí … Một số trung tâm liệu sử dụng 10% đến 30% lực xử lý có họ Ảo hóa giúp nhiều tổ chức chia sẻ tài ngun cơng nghệ thơng tin theo cách tốn giá thành nhất, làm cho sở hạ tầng công nghệ thông tin trở nên linh động bảo đảm cung cấp cách tự động với nhu cầu cần thiết Các doanh nghiệp ln tìm giải pháp để tiết kiệm hơn, lúc cơng nghệ ảo hóa tìm chỗ đứng vững lĩnh vực công nghệ thông tin giới Sử dụng cơng nghệ ảo hóa đem đến cho người dùng tiện ích, chạy nhiều hệ điều hành, nhiều hệ thống đồng thời hệ thống phần cứng máy chủ, mở rộng khả lưu trữ, cung cấp tài nguyên phần cứng Cơng nghệ ảo hóa Docker cơng nghệ mới, có khả phát triển mạnh mẽ tương lai Đây lý em chọn đề tài “Tìm hiểu giải pháp ảo hóa Docker ứng dụng” để triển khai Đồ án trình bày giải pháp ảo hóa Docker ứng dụng, nội dung đồ án bao gồm: Chương 1: Tổng quan cơng nghệ ảo hóa Chương 2: Cơng nghệ ảo hóa Docker Chương 3: Thử nghiệm ảo hóa ứng dụng với Docker Đinh Hải Long _ CT1802 Tìm hiểu giải pháp ảo hóa Docker ứng dụng CHƯƠNG 1: Tổng quan ảo hóa 1.1 Tổng quan ảo hóa 1.1.1 Ảo hóa Ảo hóa việc chia phần cứng vật lý thành nhiều phần cứng ảo Vì vậy, nói ảo hóa việc chia máy vật lý thành nhiều máy ảo Cơng nghệ ảo hóa cơng nghệ thực ảo hóa máy tính, bao gồm kỹ thuật quy trình thực ảo hóa Các kỹ thuật quy trình để tạo tầng trung gian hệ thống phần cứng máy tính phần mềm chạy Ý tưởng ban đầu cơng nghệ ảo hóa từ máy vật lý đơn lẻ tạo thành nhiều máy ảo độc lập Nó cho phép tạo nhiều máy ảo máy chủ vật lý, máy ảo cấp phát tài nguyên phần cứng máy thật gồm có RAM, CPU, Card mạng, ổ cứng, tài nguyên khác hệ điều hành riêng Khi chạy ứng dụng, người sử dụng không nhận biết ứng dụng chạy lớp phần cứng ảo người sử dụng ý tới khái niệm logic tài nguyên máy tính khái niệm vật lí tài nguyên máy tính[2] Máy chủ hệ thống CNTT ngày thường thiết kế để chạy hệ điều hành ứng dụng Điều không khai thác triệt để hiệu hầu hết máy chủ lớn Ảo hóa cho phép ta vận hành nhiều máy chủ ảo máy chủ vật lý, dùng chung tài nguyên máy chủ vật lý qua nhiều môi trường khác Các máy chủ ảo khác vận hành nhiều hệ điều hành ứng dụng khác máy chủ vật lý Kỹ thuật ảo hóa khơng xa lạ kể từ Vmware giới thiệu sản phẩm Vmware Workstation vào năm 1999 Sản phẩm ban đầu thiết kế để hỗ trợ việc phát triển kiểm tra phần mềm Nó trở lên phố biến nhờ khả tạo máy tính “ảo” chạy đồng thời nhiều hệ điều hành khác máy tính “thực”(khác với chế độ “khởi Đinh Hải Long _ CT1802 Tìm hiểu giải pháp ảo hóa Docker ứng dụng động kép ” - máy tính cải nhiều hệ điều hành chọn lúc khởi động lúc làm việc với hệ diều hành) Vmware EMC – hãng chuyên lĩnh vực thiết bị lưu trữ mua lại vào tháng 12 năm 2003 EMC mở rộng tầm hoạt động lĩnh vực ảo hóa từ máy tính để bàn đến máy chủ hãng giữ vai trò thống lĩnh thị trường ảo hóa, nhiên Vmware khơng giữ vị trí “độc tơn” mà phải cạnh tranh với nhiề sản phẩm ảo hóa hãng khách Virtualization Engine IBM, Hyper V – Microsoft, Virtuozzo SWSoft vitual iron iron software… ảo hóa khơng cịn bó hệp lĩnh vực mà mở rộng cho toàn hạ tầng công nghệ thông tin, từ phần cứng chip xử lý hệ thống máy chủ hệ thống mạng Hiện nay, Vmware hãng đẫn đầu thị trường ảo hóa khơng phải hãng tiên phong, vai trò thuộc IBM với hệ thống ảo hóa VM/370 tiếng cơng bố vào năm 1972 “ảo hóa” diện hệ thống máy chủ IBM Giữa năm 1960, IBM’s Cambridge Scientific Center tiến hành phát triển sản phẩm CP-40, sản phẩm dịng CP/CMS Nó thức đưa vào sản xuất vào tháng năm 1967 Ngay từ thiết kế CP-40 đặt mục đích phải sử dụng ảo hóa đầy đủ Để làm vấn đề yêu cầu phần cứng đoạn mã S/360-40 phải kết hợp hoàn chỉnh với nhau, phải cung cấp cách truy cập địa vung nhớ, tập lệnh CPU tính ảo hóa Năm 1970 IBM cơng bố sản phẩm System 370 Nhưng điều khiến người dùng thất vọng sản phẩm khơng có tính Virtial memory Vào tháng năm 1999, Vmware giới thiệu sản phẩm ảo hóa hoạt dộng nên tảng x86 Vmware Virtual Platform… Đinh Hải Long _ CT1802 Tìm hiểu giải pháp ảo hóa Docker ứng dụng Tiếp theo, cập nhật sở liệu gói với gói Docker từ repo bổ sung: sudo apt-get update -y Hình 2-10 Cập nhật cở sở liệu Hình 2-11 Cập nhật sở liệu Đinh Hải Long _ CT1802 43 Tìm hiểu giải pháp ảo hóa Docker ứng dụng Tiếp theo, cài đặt Docker: sudo apt-get install -y docker-ce Hình 2-12 Cài đặt Docker Chạy thử chương trình đơn giản hello-world để kiểm tra Hình 2-13 Hello-world Sau cài đặt docker, chạy Docker Command với user thơng thường với quyền sudo user root Điều bất tiện phải gõ tiền tố sudo trước docker command Cịn khơng gõ gặp phải lỗi sau Đinh Hải Long _ CT1802 44 Tìm hiểu giải pháp ảo hóa Docker ứng dụng Hình 2-14 Lỗi khơng có tiền tố sudo Giải pháp cho vấn đề tạo group docker thêm user vào group Để thực điều cần phải nhập command sau sudo addgroup –system docker sudo adduser (user name) docker newgrp docker Trong user name user mà người dùng sử dụng Hình 2-15 Giải pháp cho tiền tố sudo Đinh Hải Long _ CT1802 45 Tìm hiểu giải pháp ảo hóa Docker ứng dụng Và khơng cịn phải gõ lệnh sudo trước docker command Hình 2-16 Câu lệnh không cần tiền tố sudo 2.2.2 Cài đặt Docker compose 2.2.2.1 Docker Compose Compose cơng cụ giúp định nghĩa khởi chạy multi-container Docker applications Trong Compose, sử dụng Compose file để cấu hình application’s services Chỉ với câu lệnh, lập trình viên dễ dàng create start toàn services phục vụ cho việc chạy ứng dụng Compose công cụ tuyệt với không dùng cho development, testing, staging environments, mà ứng dụng CI workflows Việc sử dụng Docker Compose tóm lược bước sau: 2.2.2.2 Cài đặt Docker Compose Bước 1: chạy dòng lệnh để tải xuống ổn định docker compose Sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/dockercompose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose Đinh Hải Long _ CT1802 46 Tìm hiểu giải pháp ảo hóa Docker ứng dụng Bước 2: Đặt quyền cho docker compose sudo chmod +x /usr/local/bin/docker-compose Bước 3: Kiểm tra phiền cài đặt Docker-compose version Hình 2-17 Kiểm tra version docker compose Đinh Hải Long _ CT1802 47 Tìm hiểu giải pháp ảo hóa Docker ứng dụng CHƯƠNG 3: Thử nghiệm ảo hóa ứng dụng với Docker 3.1 Một số lệnh với Docker Pull image từ Docker Hub : docker pull {image_name}; Liệt kê images có : docker images; Xóa image : docker rmi {image_id/name}; Liệt kê container chạy : docker ps; Liệt kê container tắt : docker ps –a; Xóa container : docker rm -f {container_id/name}; Đổi tên container : docker rename {old_container_name} {new_container_name}; Khởi động container : docker start {new_container_name}; docker exec -it {new_container_name} /bin/bash; Tạo container, đồng thời khởi động với tùy chọn cổng volume : docker run {host_port}:{container_port} name {container_name} -p -v {/host_path}:{/container_path} -it {image_name} /bin/bash; Xem thay đổi container : docker diff {container_name}; Commit thay đổi container 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 image từ file tar : cat musashi.tar | docker import {new_image_name}:latest; Xem lịch sử commit image : docker history {image_name}; Đinh Hải Long _ CT1802 48 Tìm hiểu giải pháp ảo hóa Docker ứng dụng Khơi phục lại images từ IMAGE_ID : docker tag {iamge_id} {image_new_name}:{tag}; Build image từ container : docker build -t {container_name} ; Dấu ám Dockerfile nằm thư mục tại[7] 3.2 Tạo image push lên hub.docker.com Bước 1: Thiết lập tài khoản docker Trước tiên cần tạo tài khoản https://hub.docker.com/ để lưu image tạo Sau login vào docker terminal bằng: docker login Bước 2: Tạo image Với project nên tạo thư mục riêng lệnh Mkdir dockerst Trong thư mục dockerst tạo file Dockerfile Touch Dockerfile Truy cập vào dockerfile nhập nội dung Hình 3-1 Dockerfile Đinh Hải Long _ CT1802 49 Tìm hiểu giải pháp ảo hóa Docker ứng dụng Trong đó: FROM ubuntu: latest môi trường làm việc; Maintainer người tiến hành xây dựng lên images; RUN apt-get update nội dung để customize image ubuntu Sau vào terminal chạy lệnh Sudo chmod 755 Dockerfile Trong đó: Sudo để cấp quyền chạy lệnh CHMOD 755 cho thư mục có nghĩa là: = + + 1: Người sở hữu thư mục có quyền đọc thư mục (read); chỉnh sửa thư mục (write); liệt kê thư mục file bên (execute); = + + 1: Những người nhóm có quyền đọc thư mục (read); liệt kê thư mục file bên (execute); = + + 1: Những người cịn lại có quyền đọc thư mục (read); liệt kê thư mục file bên (execute) Tiếp tục nhập lệnh: sudo docker build -t="long7c4pro/firstimage" Đinh Hải Long _ CT1802 50 Tìm hiểu giải pháp ảo hóa Docker ứng dụng Hình 3-2 Build image Docker build để xây dựng image Long7c4pro/firstimage tên image Cuối chạy thử image câu lệnh: sudo docker run -t -i long7c4pro/firstimage /bin/bash Bước 3: Push image lên hub.docker.com lệnh sudo docker push long7c4pro/firstimage Hình 3-3 Push image Đinh Hải Long _ CT1802 51 Tìm hiểu giải pháp ảo hóa Docker ứng dụng Hình 3-4 Image push lên hub.docker.com 3.3 Chạy image docker Có phương pháp cài đặt WordPress Docker Phương pháp thủ công, sử dụng CLI để chạy WordPress Phương pháp thứ cleaner, phương pháp có hệ thống sử dụng Docker Compose Chạy Wordpress với Docker Compose Đây phương pháp khuyên dùng để tạo WordPress container container Docker Nó dùng cơng cụ thức Docker Compose Docker Mỗi container tạo Docker Compose sử dụng file config, dễ để port Bước 1: Tạo thư mục wordpress lệnh: mkdir my_wordpress Bước 2: Vào thư mục my_wordpress tạo file tên dockercompose.yml Bước 3: Vào thư mục docker-compose.yml nhập: version: '3.3' services: db: Đinh Hải Long _ CT1802 52 Tìm hiểu giải pháp ảo hóa Docker ứng dụng image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress volumes: db_data: Bước 4: Vào Command line nhập: cd my_wordpress/ Bước 5: Nhập lệnh để compose: docker-compose up –d Đinh Hải Long _ CT1802 53 Tìm hiểu giải pháp ảo hóa Docker ứng dụng Hình 3-5 Cài đặt wordpress Bước 6: Vào trình duyệt nhập localhost:8000 Kết Hình 3-6 Màn khởi động wordpress Đinh Hải Long _ CT1802 54 Tìm hiểu giải pháp ảo hóa Docker ứng dụng Hình 3-7 Màn thơng tin trang chuẩn bị tạo Đinh Hải Long _ CT1802 55 Tìm hiểu giải pháp ảo hóa Docker ứng dụng KẾT LUẬN Trong khn khổ đồ án em trình bày số khái niệm docker, hướng triển khai số thử nghiệm giới thiệu Đồ án tập trung vào viêc tìm hiểu ứng dụng cơng nghệ ảo hóa Docker, Tạo push image với triển khai image wordpress chương trình làm việc ổn định Kết đạt đồ án Đồ án đạt kết sau Tìm hiều khái niệm ảo hóa Tổng quan ảo hóa Docker Cài đặt Docker Tạo image Push image lên hub.docker.com Thiết lập ứng dụng web docker Hạn chế đồ án Các liệu giả định Một số thơng tin chưa xác Chưa triển khai ứng dụng rõ ràng Hướng phát triển Nghiên cứu sâu Docker áp dụng cho mục đích khác nhau: nghiên cứu, phát triển ứng dụng, thương mại, … Đinh Hải Long _ CT1802 56 Tìm hiểu giải pháp ảo hóa Docker ứng dụng TÀI LIỆU THAM KHẢO A: Tiếng Việt [1.] Trần Văn Đồn (2013), Luận văn thạc sỹ, Cơng nghệ ảo hố ứng dụng, Học viện cơng nghệ bưu viễn thơng [2.] Trần Hải Phương (2015), Luận văn thạc sỹ, Nghiên cứu cơng nghệ ảo hóa ứng dụng xây dựng hệ thống thông tin doanh nghiệp, Viện Đại học mở Hà Nội [3.] Vũ Trọng Chiến (2017), Luận văn thạc sỹ, Cơng nghệ ảo hóa docker ứng dụng Đại Học Dân Lập Hải Phòng B: Tiếng Anh [4.] [5]https://medium.com/the-andela-way/docker-for-beginners61e8e0ce6a19 C: Internet [5.] https://docker-curriculum.com/ [6.] https://fullstackstation.com/docker-la-gi/ [7.] https://jobs.evolable.asia/eva-topics/huong-dan-su-dung-docker-co-ban/ [8.] https://techblog.vn/docker-chua-biet-gi-den-biet-dung-phan-1 [9.] https://techmaster.vn/khoa-hoc/25561/docker-vidu-thuc-te [10.] http://luanvan.net.vn/luan-van/luan-van-tim-hieu-giai-phap-ao-hoa-cuavmware-va-trien-khai-data-center-tren-nen-esx-server-28930/ [11.] https://luanbn.wordpress.com/2015/08/26/docker-part1-dockercontainers-hypervisor/ [12.] https://vi.wikipedia.org/wiki/Docker_(phần_mềm) Đinh Hải Long _ CT1802 57 ... 2.2 Cài đặt Docker 41 2.2.1 Cài đặt Docker 41 2.2.2 Cài đặt Docker compose .46 CHƯƠNG 3: Thử nghiệm ảo hóa ứng dụng với Docker 48 3.1 Một số lệnh với Docker ... Nên cài Docker Windows hay Mac Docker cài máy ảo Linux máy thật Docker hoạt động dựa máy ảo Linux Docker có phiên CE: Dành cho nhà phát triển, nhóm nhỏ; EE: Dành cho doanh nghiệp Docker image... hiểu giải pháp ảo hóa Docker ứng dụng 2.1.4 Một số khái niệm Một số khái niệm phổ biến Docker: 2.1.4.1 Docker images Là “read-only template” Tương tự file gho để ghost win, Docker gọi image, image