BÁO CÁO ĐỒ ÁN ĐỀ TÀI CÔNG NGHỆ ẢO HOÁ VÀ TÌM HIỂU GIẢI PHÁP ẢO HOÁ VỚI DOCKER Ảo hóa là việc chia phần cứng vật lý thành nhiều phần cứng ảo. Vì vậy, có thể nói ảo hóa là việc chia một máy vật lý thành nhiều máy con ảo..
BÁO CÁO ĐỒ ÁN ĐỀ TÀI: CƠNG NGHỆ ẢO HỐ VÀ TÌM HIỂU GIẢI PHÁP ẢO HỐ VỚI DOCKER Hà Nội – 12/2021 MỤC LỤC CHƯƠNG 1: Tổng quan ảo hóa .5 1.1 Vấn đề ảo hóa 1.1.1 1.1.2 1.2 Khái niệm ảo hóa Lịch sử phát triển Phân loại ảo hóa 1.2.1 1.2.2 1.2.3 1.2.4 1.3 Ảo hóa mạng Ảo hóa lưu trữ Ảo hóa máy chủ Ảo hóa ứng dụng 11 Các cơng nghệ giúp ảo hóa hệ thống 14 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 Công nghệ máy ảo 14 Công nghệ cân tải 15 Công nghệ cân tải mạng 16 Công nghệ cân tải Clustering 16 Công nghệ RAID 18 Công nghệ lưu trữ SAN 20 Phần mềm tự nguồn mở 22 2.1 Lịch sử phát triển 23 2.2 Ưu phần mềm tự mã nguồn mở so với phần mềm nguồn đóng .24 2.3 Các khía cạnh pháp lý phần mềm tự nguồn mở .28 2.3.1 2.3.2 Những giấy phép dễ dãi 29 Các giấy phép mạnh 30 2.4 Các môi trường công nghệ phát triển phần mềm tự nguồn mở ứng dụng chúng 31 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 Ngôn ngữ 32 Môi trường phát triển tích hợp 32 Các chế cộng tác 33 Quản lý mã nguồn 33 Tài liệu 34 Quản lý lỗi vấn đề khác 34 Hỗ trợ cho kiến trúc khác 35 Các site hỗ trợ phát triển 35 Kết luận chương 35 CHƯƠNG 2: 37 Khái niệm Cơng nghệ ảo hóa Docker 37 1.1 Định nghĩa 37 1.2 Các thành phần 38 1.3 Một số khái niệm 38 1.4 So sánh Docker với Virtual machine 39 1.5 Kubernetes .42 Cài đặt, sử dụng Docker 43 2.1 Cài đặt Docker 43 2.2 Sử dụng Docker 44 2.3 Các thành phần công nghệ ảo hóa ứng dụng Docker 51 2.3.1 2.3.2 2.3.3 2.3.4 Các thành phần 51 Kiến trúc Docker 52 Ưu điểm hình thức đóng gói thành Container 54 Quy trình thực thi hệ thống sử dụng Docker 54 2.4 Các lệnh thường dùng 55 2.5 Ảo hóa ứng dụng với phần mềm tự nguồn mở Docker 58 2.6 Ưu Docker so với phần mềm ảo hóa ứng dụng khác .62 KẾT LUẬN 66 Tài liệu tham khảo 67 DANH MỤC VIẾT TẮT AD: Active Directory CPU: Center processing unit DHCP: Dynamic Host Configuration Protocol DNS: Domain Name System DPM: Distributed Power Manager DRS: Distributed Resource Scheduler HA: High Availability HDD: Hard Disk Drive IP: Internet Protocol LAN: Local Area Network MAC: Medium Access Control NIS: Network Information Server NLB: Network Load Balancing NTFS: New Technology File System OS: Operation System RAID : Redundant Arrays of Independent Disks RAM: Random Access Memory SAN: Storeage Area Network SRM: Site Recovery Manager SSH: Secure Shell TCP/IP: Transmission Control Protocol and Internet UDP: User Datagram Protocol VCB: VMware Consolidated Backup VLAN: Virtual LAN VMFS: Virtual Machine File System VSMP: Virtual Symmetric Multi-Processing DANH MỤC HÌNH Hình 1: : Kiến trúc x86 Virtuallization Hình 2: : Ảo hóa network Hình 3: Kiến trúc xử lý hổ trợ ảo hóa Hình 4: Ảo hóa ứng dụng 10 Hình 5: Mơ hình lớp tương tác hệ thống VMs 12 Hình 6: Mơ hình cân tải Clustering 15 Hình 7: RAID Song hành 17 Hình 8: RAID Ghép đôi (soi gương) 18 Hình 9: Mơ hình lưu trữ SAN 19 Hình 1: Cơng nghệ ảo hóa Docker 36 Hình 2: Mơ hình máy chủ truyền thống 37 Hình 3: Mơ hình máy ảo VMs 38 Hình 4: Mơ hình ảo hóa Container 39 Hình 5: Hệ thống file cắt lớp Container 39 Hình 6: Khác biệt Docker VMs 40 Hình 7: Kiến trúc Docker 50 CHƯƠNG 1: TỔNG QUAN VỀ ẢO HÓA VÀ PHẦN MỀM TỰ DO NGUỒN MỞ Tổng quan ảo hóa 1.1 Vấn đề ảo hóa 1.1.1 Khái niệm ả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[6] Hình 1: Kiến trúc x86 Virtuallization 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ý 1.1.2 Lịch sử phát triển Kỹ thuật ảo hóa khơng cịn 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 độ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 tồ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 hồ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… Trước phải tiền mua quyền sử dụng Vmware’s Workstion Nhưng năm 2005 Vmware định cung cấp sản phẩm ảo hóa chất lượng cao cho người dùng miễn phí Tuy nhiên chức tạo máy chủ ảo tính phụ khác nhằm mục đích tăng hiệu suất sử dụng máy ảo bị lược bỏ Năm 2006 năm ảo hóa có bước tiến q trình phát triển, dời Application Virtualization Application Streaming Năm 2008, Vmware giới thiệu phiên Vmware workstation 6.5 beta, sản phẩm cho phép chương trình cuả windows linux sử dụng Direct X9 để tăng tốc xử lý hình ảnh máy ảo Windows XP [9] 1.2 Phân loại ảo hóa 1.2.1 Ảo hóa mạng Ảo hóa hệ thống mạng tiến trình hợp tài nguyên, thiết bị mạng phần cứng lẫn phần mềm thành hệ thống mạng ảo Sau đó, tài nguyên phân chia thành channel gắn với máy chủ thiết bị [15] Các thành phần mạng sở hạ tầng mạng Switch, Card mạng, ảo hoá cách linh động Switch ảo cho phép máy ảo máy chủ giao tiếp với cách sử dụng giao thức tương tự thiết bị chuyển mạch vật lý mà không cần phần cứng bổ sung Chúng hỗ trợ VLAN tương thích với việc triển khai VLAN theo tiêu chuẩn từ nhà cung cấp khác, chẳng hạn Cisco Một máy ảo có nhiều card mạng ảo, việc tạo card mạng ảo đơn giản không giới hạn số card mạng tạo ra.Ta nối máy ảo lại với Switch ảo Điều đặc biệt quan trọng, tốc độ truyền máy ảo với thông qua switch ảo truyền với tốt độ cao theo chuẩn GIGABITE(1GB), đẫn đến việc đồng máy ảo với diễn nhanh Hình 2: Ảo hóa network 1.2.2 Ảo hóa lưu trữ Ảo hóa hệ thống lưu trữ mô phỏng, giả lập việc lưu trữ từ thiết bị lưu trữ vật lý Các thiết bị băng từ, ổ cứng hay kết hợp loại Việc làm mang lại ích lợi việc tăng tốc khả truy xuất liệu, việc phân chia tác vụ đọc, viết mạng lưu trữ Ngoài ra, việc môt thiết bị lưu trữ vật lý cho phép tiết kiệm thời gian thay phải định vị xem máy chủ hoạt động ổ cứng để truy xuất [15] Hiện nhà lưu trữ cung cấp giải pháp lưu trữ hiệu suất cao cho khách hàng họ thời gian Trong hình thức nó, Hình 7: Kiến trúc Docker 1-Docker Daemon Như biểu đồ phía trên, Docker daemon chạy máy host Người dùng không tương tác trực tiếp với daemon, mà thông qua Docker Client 2-Docker Client Là giao diện người dùng Docker, cung cấp cho người dùng giao diện dòng lệnh thực phản hồi với Docker daemon 3-Docker images Là template cho phép đọc, ví dụ image chứa hệ điều hành Ubuntu web app Images dùng để tạo Docker container Docker cho phép build cập nhật image có sẵn cách nhất, bạn download Docker images người khác 4-Docker Container Docker container có nét giống với directory Một Docker container giữ thứ cần để chạy app Mỗi container tạo từ Docker image Docker container có trạng thái run, started, stopped, moved deleted 2.3.3 Ưu điểm hình thức đóng gói thành Container Việc đóng gói thành container giải nhiều vấn đề mà ta chưa đề cập tới - - - Ví dụ trước ta khơng thể dùng chung Port, ứng dụng với container khác Ta cấu hình Port trùng cho ứng dụng này; Tiếp theo việc quản lí phiên Ta khó cài phiên phần mềm máy hypervisor Tuy nhiên với Container, ta cài phiên Container chạy cách trơn tru; Khả khởi động nhanh Docker lợi lớn; Tiếp theo nói tài nguyên, Docker ngốn tài nguyên máy hypervisor 2.3.4 Quy trình thực thi hệ thống sử dụng Docker Như hình vẽ, hệ thống Docker thực thi với bước chính: Build -> Push -> Pull,Run Cụ thể nguyên lí bước 1-Build Đầu tiên tạo dockerfile, dockerfile code Dockerfile Build máy tính cài đặt Docker Engine Sau build ta thu Container, Container chứa thư viện ứng dụng 2- Push Sau có Container, thực push Container lên đám mây lưu trữ Việc push thực qua mơi trường mạng Internet 3- Pull, Run Giả sử máy tính muốn sử dụng Container push lên đám mây (máy cài Docker Engine) bắt buộc máy phải thực việc Pull container máy Sau thực Run Container Đó quy trình bước đơn giản rõ ràng miêu tả hoạt động hệ thống sử dụng Docker 2.4 Các lệnh thường dùng Các lệnh thường dùng bao gồm: 1- Hiển thị danh sách images : Docker images 2-Tải image local docker pull (phần :tag options, để trống mặc định download latest ) Ví dụ: docker pull ubuntu => download ubuntu latest docker pull ubuntu:14.04 => download ubuntu version 14.04 Truy cập trang https://hub.docker.com/ , nơi lưu trữ images tập trung để tìm images cần dùng 3- Chạy image docker run –name -v : -p: bash Ví dụ: docker run –name eva_nginx -p 80:80 -d nginx docker run : lệnh chạy docker; –name: đặt tên cho container eva_nginx Name nhất, tạo trùng, không đặt docker tự genate; -p mở port container IP public; -d bật chế độ chạy background; nginx: tên images 4- Liệt kê container docker ps -a (liệt kê tất container) docker ps ( liệt kê container chạy background) 5-Dừng container chạy docker stop docker stop $(docker ps –a –q) (Dừng tất docker dùng) 6- Khởi động lại container dừng docker start 7- Xóa container khơng cịn sử dụng docker rm docker rm $(docker ps -a -q) (Xóa tất docker) 8-Truy cập vào container chạy docker exec -it bash 9- Export container docker export | gzip > file_export.tar.gz 10- Import container => image zcat file_export.tar.gz | docker Sau chạy xong Chạy lệnh docker images để kiểm tra lại danh sách list images Ngồi cịn nhiều lệnh khác Sử dụng lệnh docker -h liệt kê chi tiết 2.5 Ảo hóa ứng dụng với phần mềm tự nguồn mở Docker Phần đưa bước để ảo hóa ứng dụng cách build image cho riêng mình, image chạy rails app Với bước tương tự build image khác tùy thuộc vào mục đích sử dụng Bước - Lưu thay đổi image sẵn có Khi chạy container lên, cần cài thêm vài phần mềm, tiện ích vào đó, hay đơn giản muốn lưu công việc lại để bữa sau làm tiếp, dùng lệnh commit: $ docker commit {container_id} {author}/{image_name}:{tag} Vd chạy ubuntu, cài ruby vim vào, sau lưu lại: $ docker commit c3f279d17e0a vtchien/ubuntu_ruby_vim:1.0 Thực tế cách biện pháp nóng, cịn để tạo image thực thụ, docker cung cấp Dockerfile Bước - Tạo rails app Dockerfile Là file định nghĩa tất có image Trước tiếp cận với Dockerfile, cần vài thao tác chuẩn bị rails app sau chạy image $ rails new demo $ cd demo $ bundle install $ rails server Đến khởi động rails server máy local, truy cập vào localhost:3000 để thấy kết Bước - Tạo Dockerfile Vẫn thư mục gốc demo, tạo file Dockerfile với nội dung: FROM ubuntu:14.04 FROM ruby:2.3 RUN apt-get update && apt-get install -y \ build-essential \ nodejs RUN mkdir -p /app WORKDIR /app COPY Gemfile Gemfile.lock / RUN gem install bundler && bundle install jobs 20 retry COPY / EXPOSE 3000 CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"] Chú ý dòng thường bắt đầu chữ IN HOA (FROM, RUN…) từ khố Dockerfile, docker dựa vào từ khố để build image, giải thích dòng: - Dòng 1: FROM ubuntu:14.04 image dùng ubuntu:14.04 image làm - Dòng 2: tương tự dòng 1, tức image cài sẵn ruby:2.3 - Dòng 3,4,5: lệnh RUN tức chạy lệnh sau container khởi động Cụ thể thiết lập môi trường để chạy rails app - Dòng 6: tương tự - Dòng 7: WORKDIR thư mục làm việc, nghĩa sau này, lệnh RUN, COPY hay ENTRYPOINT làm việc - Dòng 8: chép file cần thiết rails app vào WORKDIR mà định - Dòng 9: tiếp tục cài đặt mơi trường cho rails - Dịng 10: copy mã nguồn rails app, viết thư mục demo vào thư mục /app container - Dòng 11: EXPOSE 3000: mặc định rails chạy cổng 3000, cần phải mở cổng 3000 container truy cập từ bên ngồi (host – tức máy local) - Dòng 12: Chạy rails server Có Dockerfile build image Bước - Build image Cú pháp: $ docker build [OPTION] [path/to/Dockerfile] Lệnh build image từ file Dockerfile thư mục hành, image có tên tag demo:1.0 (-t tag) $ docker build -t demo:1.0 Lệnh show nhiều thông tin tiến trình build image Sau có image chạy container Bước - Chạy container $ docker run -itP demo:1.0 Tham số -P để mở tất cổng định nghĩa Dockerfile Bước - Truy cập vào rails app container Liệt kê container chạy: $ docker ps CONTAINER ID IMAGE NAMES COMMAND CREATED STATUS PORTS ede938634b3a demo:1.0 "bundle exec rails se" minutes ago minutes 0.0.0.0:32768->3000/tcp Up Như thấy trên, cột PORTS, container mở cổng 3000 trỏ (NAT) đển cổng 32768, tức truy cập vào thông qua cổng Với ubuntu, cần truy cập: http://localhost:32768 vào rails server Ở máy cá nhân, địa máy VM là: 192.168.99.100, truy cập vào 192.168.99.100:32768 để kiểm tra kết 2.6 Ưu Docker so với phần mềm ảo hóa ứng dụng khác Có loại phần mềm ảo hóa ứng dụng phổ biến: Virtual Machine, Vagrant, Docker 1-Virtual Machine: Virtual machine hay gọi phần mềm tạo máy ảo Phần mềm cho phép tạo lập chạy hệ điều hành (hay máy ảo) máy chủ (host machine) Ví dụ máy tính bạn chạy Windows cần dev app chạy Linux bạn sử dụng VirtualBox để tạo máy ảo Linux Windows VirtualBox phần mềm để tạo máy ảo phổ biến PC Ngồi cịn có Vmware, MicroSoft Vitual PC Với dịng phần mềm tài nguyên máy tính phải đáp ứng đủ cho OS thật OS ảo 2-Vagrant: Là công nghệ dựa ảng Virtual Machine nhiên cung cấp thêm tính để cấu hình thiết lập mơi trường cho máy ảo (hay box) Ví dụ team có 15 người sử dụng máy Windows cần phát triển ứng dụng chạy server Linux Server cần cài đặt Apache web server, PHP, MySQL Sử dụng Vagrant tạo box có sẵn phần mềm (và cấu hình cần thiết có) để 15 team member muốn tạo mơi trường giả lập họ cần sử dụng box cấu hình mà khơng cần tạo box cài lại phần mềm (tưởng tượng team có 100 nhân viên việc giảm thiểu nhiều thời gian đáng kể nhiên phải cần máy chủ khỏe) 3-Docker: Đây công nghệ đánh giá tương lai cơng nghệ ảo hố (future of virtualization) Khác biệt lớn Docker Vagrant (hay Virtual Machine nói chung) tiết kiệm đáng kể resource sử dụng Với docker bạn chạy 20 container (tương tự hệ điều hành nhỏ) máy host (host machine) điều mà sử dụng Vagrant cần máy chủ với cấu hình cực khủng Docker làm điều khác với Virtual Machine chỗ thay tách biệt hai mơi trường guest host, container Docker chia sẻ resource với host machine Ngoài Docker tảng mở (open platform), dùng để phát triển vận hành ứng dụng, cịn có số ưu điểm sau: Với hỗ trợ docker, việc coding, testing, deploying trở nên đơn giản Khả di động (portable): môi trường develop dựng lên docker chuyển từ người sang người khác mà không làm thay đổi cấu hình Application-centric: docker dùng nhiều mơi trường, đặc biệt tương thích mơi trường develop, hướng đến việc coding thuận tiện Versioning: docker tích hợp VCS-git, để tracking dịng lệnh thiết lập, hay đánh dấu version Component re-use: nghĩa docker có khả sử dụng lại resource trước đó, cách đánh dấu resources giống mã ID Các môi trường dựng lên sau kiểm tra mã ID trước đó, trùng docker sử dụng lại Sharing: với Docker Hub (public registry), developer tìm sử dụng môi trường dựng sẵn Các OS dùng Docker: Linux: Ubuntu 12.04+, Fedora 19/20+, RHEL 6.5+, CentOS 6+, Gentoo, ArchLinux, openSUSE 12.3+, CRUX 3.0+ Cloud: Amazon EC2m Google Compute Engine, Microsoft Azure,… Max OS X Windows: Windows 7+ Bên cạnh ưu điểm kể trên, docker có nhược điểm: Tốn thời gian học tập; Mới, cập nhật thay đổi thường xuyên; Công cần thiết để biết viết code môi trường gần không so với phát triển local; Xét tính an tồn: o Do dùng chung OS nên có lỗ hổng kernel host OS ảnh hưởng tới tồn container có host OS đấy; o Ngồi với host OS Linux, trường hợp ứng dụng có container chiếm quyền superuser Về lý thuyết tầng OS bị crack ảnh hưởng trực tiếp tới máy host bị hack container khác máy (hacker sử dụng quyền chiếm để lấy liệu từ máy host từ container khác máy host bị hack chẳng hạn) KẾT LUẬN CHƯƠNG Docker phát hành dạng mã nguồn mở tháng năm 2013 Tới 2015, dự án Docker trở thành top 20 dự án có số cao rên GitHub Năm 2017, Có thể nói chưa docker có nhiều thay đổi năm 2017 Hiện phần mềm tạo ảo hóa Docker đánh giá tương lai cơng nghệ ảo hố hỗ trợ nhiều hệ điều hành khác GNU/Linux, Cloud, Mac OS X Microsoft Windows Docker đưa giải pháp cho vấn đề ảo hóa, thay tạo máy ảo chạy độc lập kiểu hypervisors (tạo phần cứng ảo cài đặt hệ điều hành lên đó), ứng dụng đóng gói lại thành Container riêng lẻ Các Container chạy chung nhân hệ điều hành qua LXC, chia sẻ chung tài nguyên máy mẹ, đó, hoạt động nhẹ nhanh máy ảo dạng hypervisors Docker có thành phần Docker Enginne Docker Hub, Có đối tượng quy định: Docker images, Docker registries, Docker container, Dockerfile, Orchestration Một hệ thống Docker thực thi với bước : Build -> Push -> Pull,Run Quy trình ảo hóa ứng dụng sử dụng Docker thực qua bước: Tạo Dockerfile; Build image; Chạy container So với công nghệ ảo hóa phổ biến khác Virtual Machine Vagrant cơng nghệ Docker có nhiều ưu điểm nhanh hơn, nhẹ hơn, chia sẻ dễ dàng, tốn tài nguyên hơn,… KẾT LUẬN Ở phạm vi nghiên cứu đề tài, em cung cấp đầy đủ khái niệm ảo hoá, giới thiệu docker cách sử dụng câu lệnh đơn giản với docker linux Docker sử dụng phổ biến rộng rãi giới có nhiều nhược điểm tính cập nhật tính an tồn phải dùng chung với hệ điều hành Hướng phát triển đề tài nghiên cứu sâu Docker áp dụng cho nhiều mục đích khác nhau: nghiên cứu, phát triển ứng dụng, thương mại, Ngồi cịn xây dựng dịch vụ ảo hoá máy chủ cho hệ thống cho doanh nghiệp vừa nhỏ Tài liệu tham khảo [1] James Turnbull (2014), TheDocker Book v1.0.7, ISBN 978-0-9888202-0-3 [2] James Turnbull (2015), TheDocker Book v1.9.1, ISBN 978-0-9888202-0-3 [3] Linux Foundation (2015), Guide to the Open Cloud, [Internet], Available from: URL: www.linuxfoundation.org [4] http://docker.com, truy cập 06/2017 [5] https://github.com/docker, truy cập 06/2017 [6] https://www.wikipedia.org, truy cập 06/2017 ... 1.3.4 1.3.5 1.3.6 Công nghệ máy ảo 14 Công nghệ cân tải 15 Công nghệ cân tải mạng 16 Công nghệ cân tải Clustering 16 Công nghệ RAID ... công nghệ lưu trữ mạng SAN Các kiểu ảo hóa bao gồm: ảo hóa hệ thống mạng, ảo hóa hệ thống lưu trữ, ảo hóa ứng dụng, ảo hóa hệ thống máy chủ Trong cơng nghệ ảo hóa ứng dụng, cơng nghệ ảo hóa Docker. .. máy ảo lại với Switch ảo Điều đặc biệt quan trọng, tốc độ truyền máy ảo với thông qua switch ảo truyền với tốt độ cao theo chuẩn GIGABITE(1GB), đẫn đến việc đồng máy ảo với diễn nhanh Hình 2: Ảo