Lập trình x window trên ubuntu
Vào một ngày đẹp trời "trăng thanh gió mát", bạn được phân bổ vào dự án mới, và tất nhiên là hào khí ngút trời, thế như chẻ tre nhảy vào happy coding: Show
Bạn hứng khởi vào đọc README.md một hồi, thấy project này sao mà cài cắm nhiều thứ thế, nào là ruby, rồi rails, redis, mysql, nginx, ... mỗi thứ lại phải kèm theo version bao nhiêu, một tá thư viện, vân vân và mây mây với với hàng tá thứ khác. (Định kể thêm tý nữa cho nó nguy hiểm nhưng mà thôi các bạn cứ hiểu là nhiều nhé ) Lẩm bẩm một hồi, giờ ngồi search google, cài cắm, setup một tá thứ này thì hết bao lâu ta ?
Cài chưa xong đã conflic tùm lum, cái nọ xung đột cái kia chẳng hạn, lại còn ảnh hưởng tới những chương trình cũ đã cài đặt trong máy nữa chứ, thôi cài lại luôn cả hệ điều hành cho máy.
Thôi xong, mất thời gian, mệt mỏi với nhưng thao tác phụ mà chưa tập trung được vào việc chính. Đó chính là lúc bạn nên nghĩ tới Docker, mọi thứ sẽ đơn giản hơn nhiều.
Một ví dụ đơn giản vậy thôi, không dừng lại ở đó, công dụng của Docker còn khá nhiều, chúng ta cùng tìm hiểu dần nhé ! Cùng đọc lịch sử một chút đã:
2.2 Container là gì ? Các phần mềm, chương trình sẽ được Container Engine ( là một công cụ ảo hóa tinh gọn được cài đặt trên host OS) đóng gói thành các container. Thế Container là gì, nó là một giải pháp để chuyển giao phần mềm một cách đáng tin cậy giữa các môi trường máy tính khác nhau bằng cách:
Bạn có thể hiểu là ruby, rails, mysql ... kia được bỏ gọn vào một hoặc nhiều cái thùng (container), ứng dụng của bạn chạy trong những chiếc thùng đó, đã có sẵn mọi thứ cần thiết để hoạt động, không bị ảnh hưởng từ bên ngoài và cũng không gây ảnh hưởng ra ngoài. Các tiến trình (process) trong một container bị cô lập với các tiến trình của các container khác trong cùng hệ thống tuy nhiên tất cả các container này đều chia sẻ kernel của host OS (dùng chung host OS). Đây một nền tảng mở dành cho các lập trình viên, quản trị hệ thống dùng để xây dựng, chuyển giao và chạy các ứng dụng dễ dàng hơn. Ví dụ, bạn có một app java, bạn sẽ không cần cài đặt JDK vào máy thật để chạy app đó, chỉ cần kiếm container đã được setting tương ứng cho app về, bật nó lên, cho app chạy bên trong môi trường container đó, vậy là ok. Khi không sài nữa thì tắt hoặc xóa bỏ container đó đi, không ảnh hưởng gì tới máy thật của bạn.
Xét về tính an toàn:
2.3 Docker ra đời Công nghệ ảo hóa (vitualization) thì ta có thể dùng công cụ Vitualbox hay VMware thế còn đối với containerlization thì dùng gì đây ? Google họ dùng gì ? Oh mình không biết được, mỗi một ông lớn có một cách để áp dụng công nghệ này và họ private source code. Gần đây, mà cũng lâu rồi Có một công ty tiến hành public source code của họ về công nghệ này, họ tung ra sản phẩm mang tên là Docker và nhận được nhiều sự chú ý. Sau đó công ty cũng đổi tên thành Docker luôn. Công ty này cung cấp công cụ Docker free nhưng họ kiếm được rất nhiều tiền từ những dịch vụ khác đi kèm với nó. Với sự bùng nổ của việc sử dụng container cùng với những lợi ích lớn mà nó mang lại, gã khổng lồ phần mềm Microsoft không muốn bỏ qua cơ hội màu mỡ này với việc cho ra mắt tính năng mới có tên Windows Container.
I. Chuẩn bị một chút: Update the apt package index:$ sudo apt-get update Install packages to allow apt to use a repository over HTTPS:$ sudo apt-get install Add Docker’s official GPG key:$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching for the last 8 characters of the fingerprint.$ sudo apt-key fingerprint 0EBFCD88 pub 4096R/0EBFCD88 2017-02-22 Use the following command to set up the stable repository$
sudo add-apt-repository II. Cài đặt docker CE: Update the apt package index:$ sudo apt-get update Install the latest version of Docker CE, or go to the next step to install a specific version. Any existing installation of Docker is replaced.$ sudo apt-get install docker-ce Verify that Docker CE is installed correctly by running the hello-world image.$ sudo docker run hello-world
Ngoài ra bạn có thể tham khảo cài đặt tại trang chủ.
Docker có hai khái niệm chính cần hiểu, đó là image và container:
Ví dụ:
Câu lệnh
sẽ hiển thị thông tin của Kernel ubuntu, cùng so sánh nhé: Kết quả của dòng uname-a thứ nhất là thông tin Kernel của máy ảo (tức là của container)
Kết quả của dòng uname-a thứ hai là thông tin Kernel của máy "thật" (Linux) bạn đang dùng.
-> Thông tin nhân Kernel như nhau nhé ! Do container sử dụng chung tài nguyên với host OS mà.
Phần 1 này chủ yếu giới thiệu về lý thuyết, để mình cùng nhau hiểu Docker là gì và bản chất của Docker đã. Trong quá trình viết bài mình cần tìm hiểu thêm nhiều và cũng nhận ra nhiều điều mới. Nếu có ý kiến đóng góp gì, bạn vui lòng comment bên dưới nhé ! Trong phần 2 mình sẽ:
############################################### ############################################### |