Quay lại

Docker 1 / DevOps Docker là gì? Cài docker và docker-compose trên EC2/AWS và Windows Chuyên mục Devops    2023-04-02    104 Lượt xem    141 Lượt thích    comment-3 Created with Sketch Beta. 0 Bình luận

Docker 1 / DevOps Docker là gì?  Cài docker và docker-compose trên EC2/AWS và Windows

Chào mừng các bạn đến với blog của mình , hôm nay mình sẽ hướng dẫn các bạn về docker , trước khi hiểu về docker là gì và làm việc với nó như thế nào? thì mình kể cho các bạn 1 vài câu chuyện để cho các bạn thấy cái tầm quan trọng của docker nhé ! có phải trước khi bắt tay vào dự án các bạn cần phải chuẩn bị cài đặt các version như thế nào (php version, mysql version ...) và chạy trên môi trường như thế nào đúng không ? cái việc để mà cài các package cho môi trường lập trình thì sẽ rất tốn rất nhiều công sức và thời gian. Docker được sinh ra để giải quyết việc này , docker đã có sẵn các package mà nó đã chuẩn bị sãn các môi trường chính vì vậy khi mà bắt đầu với một dự án mới mình chỉ cần là lên docker hub để download các package mà docker đã chuẩn bị sẵn rồi, có thể là apache , nginx , mysql, redis postgreSQL... thì như vậy trong một khoảng thời gian rất là ngắn thì mình đã có một môi trường cho mình lập trình rồi .

Câu chuyện thứ 2 là khi bạn tiếp quản 1 dự án các bạn cần phải cài đặt từng bước từng bước đúng ko ? Trong trường hợp người trước có để lại tài liệu để mình triển khai trên môi trường của mình thì không vấn đề gì đúng ko , nhưng mà nói như vậy kể cả là có các bước thì mình vẫn sẽ gặp rất nhiều vấn đề chỉ cần version trên máy của mình nó khác đi 1 chút thôi cũng đã dẫn đến việc không cài được rồi . Với thằng docker khi mình triển khai trên dự án xong thì mình chỉ cần đóng gói lại thành 1 cái image và mình lấy cái image này chuyển giao cho các bạn khác hoặc cũng có thể chuyển giao cho khách hàng , việc đơn giản lại của khách hàng và các bạn được chuyển giao đó là chỉ cần chạy package đó lên thì lập tức nó đã chạy được rồi.

OK ! các bạn đã hình dung ra cái hay của docker chưa , tóm cái váy lại là thứ nhất nó sẽ giúp không phải tốn công đi cài những package 1 cách thủ công , thứ 2 là khi chuyển giao cho khách hàng thì mình chỉ cần bàn giao cho cái image mà thôi , khách hàng chỉ cần chạy lên là đã có sản phẩm luôn rồi . 

Các bạn đã nhận thấy công dụng của docker rất là hay rồi đúng ko ? Mình cùng bắt đầu nhé ! 

1. Docker là gì và các thành phần chính

Docker là gì thì mình đã giải thích cho các bạn rồi đúng không ? Trong docker thì có rất nhiều thành phần mình chỉ liệt kê dưới đây 1 list các thành phần chính bắt buộc phải biết trong docker, đủ để làm việc và phục vụ cho công việc lập trình của mình:

  • Image : Là các bộ cài như Centos , Mysql, Ubuntu ...
  • Docker hub: Là nơi quản lý các image giống như github
  • Container : Là máy ảo được tạo ra từ image,( với docker nó tạo ra các container sử dụng chung RAM và CPU nên nó sẽ tối ưu hóa hơn , có thể chạy nhiều container trên 1 máy).
  • Docker file: Là 1 tập tin bao gồm các chỉ dẫn để build image.
  • Volume: Lưu data ra ngoài container (khi mà stop container đi mà k lưu vào Volume dẫn đến bị mất).
  • Docker-compose:  là một công cụ giúp định nghĩa và chạy multi-container trong những ứng dụng sử dụng Docker. Với Compose, chúng ta có thể config các services để phục vụ cho ứng dụng. Và tiện hơn khi chỉ với một câu lệnh, chúng ta có thể tạo và start tất cả các Docker containers services mà chúng ta sử dụng.
  • Network: Docker network sẽ đảm nhiệm nhiệm vụ kết nối mạng giữa các container với nhau, kết nối giữa container với bên ngoài, cũng như kết nối giữa các cụm (swarm) docker containers. Với container và service của Docker, bạn có thể kết nối chúng lại với nhau hoặc kết nối chúng với các mạng khác nằm ngoài docker.
  • ......

2. Cài đặt docker trên Window

 Để cài được docker trên window thì các bạn chỉ cần click vào link để download docker cho window.

Trước khi cài cần lưu ý là phải enable 2 features trong window lên giúp mình nhé:

  • Bật hyber-V : Cái này nó dùng để support các máy ảo để chạy các containers
  • Bật Windows powerShell 2.0 : Dùng để chạy các lệnh của docker trên window

Để bật được các bạn tìm đến  Control panel -> Programs -> Turn windows features on or off

Các bạn tìm đến hyber-V Windows powerShell 2.0 bật nó lên nhé vậy là xong rồi (nếu nó hỏi khỏi động lại máy thì cứ khởi động thôi ) , sau khi xong bước này các bạn có thể cài đặt Docker desktop Installer.exe nhé !

 Ok vậy là cũng gần xong rồi đó, nhiệm vụ của các bạn bh là lên docker hub tạo một account nhé Docker hub link

 sau khi tạo xong account thì các bạn mở Docker desktop và đăng nhập vào nhé !

Ok trước khi kết thúc các bạn hãy mở Windows powerShell lên và check xem docker version hiện tại là bao nhiêu và các lệnh docker-compose có thể thực thi hay không .

  • docker --version
  • docker-compose --help

3. Install trên EC2 (Linux)

 Để cài đặt được docker trên môi trường EC2 linux trước tiên bạn cần phải ssh vào server trước: 

Sau đó chạy 1 số command sau:

Cài đặt docker :

  • sudo yum update -y : Để update cái core cho nó thành mới nhất
  • sudo yum install -y docker : Cặt đặt docker
  • sudo service docker start : Start docker
  • sudo usermod -a -G docker ec2-user

Cài docker-compose: 

  • sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • sudo chmod +x /usr/local/bin/docker-compose

 OK ! Sau khi các bạn chạy hết các command bên trên thì hãy kiểm trả xem docker đã được start lên chưa nhé và đừng quên kiểm tra docker-compose nhé

  • sudo service docker status
  • docker compose --help

Và kết quả sẽ như hình dưới đây:

Ngoài ra các bạn cần biết thêm 1 số cmd của docker :

  • Kiểm tra Docker đã được bật hay chưa
    • sudo service docker status
  • Bật Docker
    • sudo service docker start
  • Tắt Docker
    • sudo service docker stop

4.Kết thúc

Ok vậy là mình hướng dẫn xong Cài docker và docker-compose trên EC2/AWS và Windows rồi , thời gian tới mình sẽ ra 1 bộ video để hướng dẫn các bạn cụ thể hơn nhé , Bài tiếp theo các bạn sẽ đc học làm sao để triển khai Image, Container và Docker-hub cho khách hàng và anh em lập trình nhé . Thank you anh em đã đọc hết bài này.

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday