Giới Thiệu Về Docker Làm Quen Với Docker Tạo Container
Có thể bạn quan tâm
- Docker ?
- Cài đặt Docker
- Làm quen với lệnh của Docker
- Tạo và chạy container
Giới thiệu Docker
Docker là một công cụ giúp cho việc tạo ra và triển khai các container để phát triển, chạy ứng dụng được dễ dàng. Các container là môi trường, mà ở đó lập trình viên đưa vào các thành phần cần thiết để ứng dụng của họ chạy được, bằng cách đóng gói ứng dụng cùng với container như vậy, nó đảm bảo ứng dụng chạy được và giống nhau ở các máy khác nhau (Linux, Windows, Desktop, Server ...)
Docker có vẻ rất giống máy ảo (nhiều người từng tạo máy ảo với công cụ ảo hóa như Virtual Box, VMWare), nhưng có điểm khác với VM: thay vì tạo ra toàn bộ hệ thống (dù ảo hóa), Docker lại cho phép ứng dụng sử dụng nhân của hệ điều hành đang chạy Docker để chạy ứng dụng bằng cách bổ sung thêm các thành phần còn thiếu cung cấp bởi container. Cách này làm tăng hiệu xuất và giảm kích thước ứng dụng.
Ai dùng Docker? Docker mang lại lợi ích cho cả lập trình viên lẫn quản trị hệ thống, sử dụng Docker lập trình viên tập trung vào mà viết code chứ không lo lắng về việc triển khai, không lo lắng ở máy của lập trình viên chạy được, máy khác lại không chạy được ...
Cài đặt Docker
Hiện giờ Docker có đầy đủ bản cài đặt trên Windows, MacOS, Linux. Tùy thuộc bạn muốn chạy trên môi trường nào thì tải về bản cài đặt tương ứng để cài đặt.
Cài Docker trên macOS
Tải bộ cài tại Docker Desktop for Mac, cài đặt đơn giản như các công cụ thông thường.
Cài Docker trên Windows 10
Đảm bảo hệ thống là Windows 10 Pro
Tải bộ cài tại Docker Desktop for Windows, tiến hành cài đặt. Đối với Windows phải kích hoạt chế độ Hyper-V virtualization (Ở chế độ này bạn không dùng được VirtualBox nữa).
Nếu chưa kích hoạt Hyper-V thì kích hoạt theo hướng dẫn Enable Hyper-V
Chạy lệnh PowerShell sau để kích hoạt:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -AllKích hoạt thông qua thiết lập Windows
- Nhấn phải chuột vào biểu tượng cửa sổ, chọn Apps and Features
- Chọn Programs and Features
- Chọn Turn Windows Features on or off
- Đánh dấu vào Hyper-V như hình dưới
Cài Docker trên Ubuntu
Chạy các lệnh để cài đặt:
sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" sudo apt update apt-cache policy docker-ce sudo apt install docker-ce sudo systemctl status dockerSau khi cài đặt, bạn có thể cho user hiện tại thuộc group docker, để khi gõ lệnh không cần xin quyền sudo
sudo usermod -aG docker $USERLogout sau đó login lại để có hiệu lực.
Ngoài ra khi sử dụng đến thành phần docker-compose thì bạn cài thêm
sudo apt install docker-composeNếu có nhu cầu sử dụng Docker Machine trên Ubuntu, (công cụ tạo - quản lý các máy ảo chạy Docker Engine, các máy ảo này tạo bởi VirtualBox, bạn sử dụng Docker-machine để thực hành các ví dụ kết nối nhiều máy chạy Docker Engine khác nhau tạo thành cụm Server), thì cài thêm Docker Machine. Phiên bản mới nhất lấy tại Docker Machine
Ví dụ cài bản v0.16.1, gõ lệnh sau:
curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machineTất nhiên là Docker Machine cần VirtualBox để làm việc, nếu chưa có thì cài thêm
sudo apt install virtualboxCài Docker trên CentOS7/RHEL7
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce sudo usermod -aG docker $(whoami) sudo systemctl enable docker.service sudo systemctl start docker.service #Cài thêm Docker Compose sudo yum install epel-release sudo yum install -y python-pip sudo pip install docker-compose sudo yum upgrade python* docker-compose versionCài Docker trên CentOS8/RHEL8
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce # Nếu lỗi, chạy lệnh sau sudo dnf install --nobest docker-ce -y sudo usermod -aG docker $(whoami) sudo systemctl enable docker.service sudo systemctl start docker.service #Cài thêm Docker Compose sudo yum install epel-release sudo yum -y install python2-pip sudo pip2 install docker-compose sudo yum upgrade python* docker-compose versionKhi đã có Docker trên máy, làm việc với Docker để quan lý các thành phần của nó ... hầu hết làm việc qua giao diện dòng lệnh CLI của hệ thống: trên macOS/Linux mở termial để gõ lệnh, trên Windows thì nên dùng PS (PowerShell) để chạy các lệnh Docker.
Làm quen ban đầu Docker
Giờ hãy mở giao diện lệnh termial (macOS, Linux) hay PowerShell của Windows nên và gõ:
Kiểm tra phiên bản Docker
docker --version Hoặc lệnh thông tin chi tiết hơn: docker info
image và container trong Docker
image là một gói phần mềm trong đó chứa những thứ cần như thư viện, các file cấu hình, biến môi trường để chạy mội ứng dụng nào đó. Nó giống như cái USB chứa bộ cài đặt hệ điều hành Windows!
Khi một phiên bản của image chạy, phiên bản chạy đó gọi là container - (vậy muốn có container phải có image). Bất ký lúc nào bạn cũng có thể kiểm tra xem có bao nhiêu container đang chạy và nó sinh ra từ image nào.
Bước đầu, để có image nào đó bạn tải về từ https://hub.docker.com/search?q=&type=image, tại đó có đủ các loại phù hợp với công việc của bạn!
Tải về một image
Kiểm tra các image bạn đang có
docker images -aNó sẽ liệt kê ra các image bạn đang có, với dạng:
- Repository tên image trên kho chứa, ví dụ hệ điều hành CentOS có tên trên hub.docker.com là centos (xem centos)
- TAG là phiên bản image, với giá trị latest có nghĩa là bản cuối. Muốn tải về bản khác latest vào mục TAGS trên hub.docker.com tìm bản phù hợp.
- IMAGE ID một chuỗi định danh duy nhất (tên) của image trên hệ thống của bạn.
Để tải về một image nào đó, dùng lệnh
docker pull nameimage:tag #Hoặc tải về bản cuối docker pull nameimageBây giờ hệ thống không có hệ điều hành Ubuntu, muốn tải nó về - vì trên hub.docker.com nó có tên ubuntu, ta sẽ tải về bản mới nhất bằng lệnh:
docker pull ubuntu
Giờ thì hệ thống sẽ có thêm image với tên ubutu, có thể góc lại lệnh kiểm tra docker images -a ở trên để xem.
Tạo và chạy container
Như trên, container là một phiên bản chạy của image, trước tiên
Kiểm tra có các container nào đang chạy: docker ps Liệt kê tất cả các container: docker container ls --all
Các container bạn đã tạo, liệt kê ra hãy chú ý mấy thứ
- CONTAINER ID một con số (mã hash) gán cho container, bạn dùng mã này để quản lý container này, như xóa bỏ, khởi động, dừng lại ...
- IMAGE cho biết container sinh ra từ image nào.
- COMMAND cho biết lệnh, ứng dụng chạy khi container chạy (/bin/bash là terminate)
- STATUS cho biết trạng thái, (exit - đang dừng)
Để tạo và chạy một container theo cú pháp:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]Các tham số đó là:
- [OPTIONS] các thiết lập khi tạo container, có rất nhiều thiết lập tùy mục đích tạo container, sẽ tìm hiểu các thiết lập qua từng trường hợp cụ thể.
- IMAGE tên image hoặc ID của image từ nó sinh ra container.
- [COMMAND] [ARG...] lệnh và tham số khi container chạy.
Trở lại phần trên, đang có image hệ điều hành Ubuntu, giờ muốn chạy nó (tạo một container từ nó), hãy gõ lệnh sau:
docker run -it ubuntuBạn chú ý có tham số -it để khi container chạy, bạn có terminate làm việc ngay với Ubuntu. Tham số này có nghĩa là
- -t nó có nghĩa là console, cho phép kết nối với terminal để tương tác
- -i có nghĩa duy trì mở stdin để nhập lệnh.
Sau lệnh này, bạn đang chạy Ubuntu, bạn có thể gõ vài lệnh Ubuntu kiểm tra xem. Ví dụ kiểm tra phiên bản Ubuntu, xem hình dưới với lệnh cat /ect/*release. Như vậy bạn đã tạo một container
Bạn đang ở terminal của Ubuntu, có thể kết thúc bằng lệnh exit, hoặc nhấn nhanhCTRL+P,CTRL+Q để thoat termial nhưng container vẫn đang chạy.
Một vài tham số khác:
Tạo và chạy container, container tự xóa khi kết thúc thì thêm vào tham số --rm
docker run -it --rm ubuntuTạo và chạy container - khi container chạy thi hành ngay một lệnh nào đó, ví dụ ls -la
docker run -it --rm debian ls -laTạo và chạy container - ánh xạ một thự mục máy host vào một thư mục container, chia sẻ dữ liệu
docker run -it --rm -v path-in-host:path-in-container debianVào container đang đang chạy
Kiểm tra xem bằng lệnh docker ps, nếu có một container với ID là containerid đang chạy, để quay quay trở lại terminal của nó dùng lệnh:
docker container attach containeridChạy một container đang dừng
docker container start -i containeridNếu cần xóa bỏ hẳn một container thì dùng lệnh
docker container rm containeridTóm tắt các lệnh làm quen
#kiểm tra phiên bản docker --version #liệt kê các image docker images -a #xóa một image (phải không container nào đang dùng) docker images rm imageid #tải về một image (imagename) từ hub.docker.com docker pull imagename #liệt kê các container docker container ls -a #xóa container docker container rm containerid #tạo mới một container docker run -it imageid #thoát termial vẫn giữ container đang chạy CTRL +P, CTRL + Q #Vào termial container đang chạy docker container attach containerid #Chạy container đang dừng docker container start -i containerid #Chạy một lệnh trên container đang chạy docker exec -it containerid command Mục lục bài viết Docker ?Cài đặt DockerLàm quen với lệnh của DockerTạo và chạy container ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB Đăng ký nhận bài viết mớiTừ khóa » Docker Dùng để Làm Gì
-
Docker Là Gì? Kiến Thức Cơ Bản Về Docker - TopDev
-
Docker Là Gì Và Làm Gì? - Viblo
-
Docker Dùng để Làm Gì? Hướng Dẫn Docker Cho Người Mới Bắt đầu
-
Docker Là Gì Và Tại Sao Chúng Ta Lại Sử Dụng Nó Khi Phát Triển Phần ...
-
Docker Là Gì? - AWS
-
Docker Là Gì? Tìm Hiểu Về Dự án Mã Nguồn Mở Docker Từ A - Z
-
Docker Và ứng Dụng Của Docker
-
Docker Là Gì? Tại Sao Phải Dùng Docker Trong Dự án Phần Mèm?
-
Docker Là Gì? Kiến Thức Cơ Bản Về Docker Không Thể Bỏ Lỡ
-
Docker Là Gì? Lợi ích Của Docker Là Gì? - Nhân Hòa
-
Docker Là Gì, Tại Sao Phải Dùng Docker?
-
Docker Là Gì? Hướng Dẫn Sử Dụng Docker Cơ Bản - Vietnix
-
Docker: Chưa Biết Gì đến Biết Dùng (Phần 1) - Bizfly Cloud
-
Docker Là Gì? Kiến Thức Chuyên Sâu Về Docker Không Nên Bỏ Lỡ