Bắt đầu với Docker Images được dựng sẵn

theanh

Administrator
Nhân viên
Hình ảnh là thành phần cơ bản của docker. Trong hướng dẫn này, chúng ta sẽ thảo luận về docker image là gì, cách xây dựng chúng, cách quản lý chúng và cách sử dụng chúng.

Chúng ta hãy bắt đầu.

Điều kiện tiên quyết​

  • Trước khi bắt đầu sử dụng docker image, bạn cần cài đặt docker trên hệ thống của mình.
  • Hướng dẫn này sử dụng Ubuntu, nhưng các bước thực hiện sẽ tương tự đối với các bản phân phối khác.
  • Tài khoản người dùng có quyền root.

Bạn nên biết những gì?​

Trước khi bắt đầu làm việc với docker image, điều quan trọng là bạn phải biết chúng là gì.

Dockerimage là thành phần cơ bản của docker. Docker sử dụng hình ảnh để tạo vùng chứa. Về cơ bản, hình ảnh là các mẫu chứa tất cả thông tin cần thiết để tạo vùng chứa, như mã, thư viện và thời gian chạy.

Vùng chứa docker là phiên bản thời gian chạy của hình ảnh. Nó chứa mọi thứ mà hình ảnh chứa, cùng với bất kỳ thay đổi hoặc bổ sung nào mà bạn thực hiện trong khi container đang chạy. Ví dụ: nếu bạn cài đặt một ứng dụng mới trên hệ thống của mình, ứng dụng mới đó sẽ được cài đặt trong container của bạn.

Quản lý hình ảnh bằng CLI​

Quản lý hình ảnh bằng Docker CLI là điều bắt buộc đối với các quản trị viên Docker. Docker CLI là một công cụ mạnh mẽ cung cấp cho bạn quyền kiểm soát hoàn toàn đối với hình ảnh và container của mình. Trong phần này, bạn sẽ tìm hiểu cách sử dụng Docker CLI để quản lý hình ảnh của mình.

1. Chạy lệnh bên dưới để đảm bảo Docker đang chạy.
Mã:
sudo systemctl status docker

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22203%22%3E%3C/svg%3E


2. Nếu Docker không chạy, hãy khởi động nó bằng lệnh bên dưới.
Mã:
sudo systemctl start docker
3. Thêm tài khoản người dùng của bạn vào nhóm docker. Đăng xuất và đăng nhập lại để những thay đổi có hiệu lực.
Mã:
sudo usermod -aG docker $(whoami)
4. Nếu bạn chạy lệnh docker image, bạn sẽ thấy danh sách tất cả các tùy chọn có sẵn cho lệnh docker image.
Mã:
docker image
Như được hiển thị bên dưới, lệnh docker image có nhiều tùy chọn, nhưng một số tùy chọn được sử dụng phổ biến nhất là:
  • ls: Liệt kê các hình ảnh trên hệ thống của bạn.
  • pull: Kéo một hình ảnh từ sổ đăng ký.
  • push: Đẩy một hình ảnh vào sổ đăng ký.
  • create: Tạo một hình ảnh mới từ Dockerfile.
  • rm: Xóa một hình ảnh khỏi system.
  • tag: Gắn thẻ một hình ảnh bằng tên.

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22389%22%3E%3C/svg%3E


Để bắt đầu, chúng ta hãy xem cách liệt kê các hình ảnh trên hệ thống của bạn.

5. Chạy lệnh docker image ls để liệt kê các hình ảnh trên máy chủ của bạn. Lệnh docker image ls liệt kê tất cả các hình ảnh trên máy chủ của bạn, bao gồm cả các kho lưu trữ mà chúng được kéo từ đó. ID, kho lưu trữ, thẻ và kích thước của hình ảnh.
Mã:
docker image ls

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22112%22%3E%3C/svg%3E


Giả sử bạn muốn xóa một hình ảnh khỏi máy chủ của mình. Bạn có thể sử dụng lệnh rm. Bạn có thể sử dụng tên hình ảnh hoặc ID hình ảnh để xóa hình ảnh.
Mã:
docker image rm
Mã:
docker image rm
Trong trường hợp bạn sử dụng ID, hãy đảm bảo rằng một vài ký tự đầu tiên trong ID là duy nhất đối với các hình ảnh trong danh sách. Nói cách khác, một vài chữ cái đầu tiên trong ID không được sử dụng bởi bất kỳ hình ảnh nào khác.

6. Ví dụ, để xóa ảnh ubuntu:12.04, bạn có thể sử dụng bất kỳ lệnh nào sau đây. Lưu ý rằng chúng ta chỉ có thể sử dụng một vài ký tự đầu tiên của ID(5b1) để xóa hình ảnh vì không có hình ảnh nào khác có vài ký tự đầu tiên đó.
Mã:
docker image rm ubuntu:12.04
Mã:
docker image rm 5b1
Hình ảnh ubuntu:12.04 sẽ bị xóa khỏi máy chủ của bạn cùng với mọi lớp được sử dụng để tạo hình ảnh, như được hiển thị bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22170%22%3E%3C/svg%3E


7. Liệt kê lại các hình ảnh trên hệ thống của bạn để xác minh rằng hình ảnh ubuntu:12.04 không còn được liệt kê nữa.
Mã:
docker image ls

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2293%22%3E%3C/svg%3E


Lưu ý lệnh docker image ls và lệnh docker images thực hiện cùng một chức năng. Tuy nhiên, lệnh thứ hai hiện đã lỗi thời vì Docker thích các nhà phát triển sử dụng lệnh docker với các lệnh con chính xác của nó.Chúng ta có cùng chức năng với lệnh docker rmi. Lệnh này được sử dụng để xóa một hình ảnh và tất cả các lớp của nó giống hệt như lệnh docker image rm. Docker khuyến nghị sử dụng docker rm với các lệnh con chính xác của nó.
Mã:
docker image ls
Mã:
docker images
Chúng ta có cùng một đầu ra.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22167%22%3E%3C/svg%3E


Cho đến nay, bạn đã xóa một hình ảnh chưa sử dụng tại một thời điểm. Nếu bạn muốn xóa hai hoặc nhiều hình ảnh chưa sử dụng cùng một lúc thì sao?

Đây là lúc lệnh prune trở nên hữu ích. Lệnh prune có thể được sử dụng để xóa tất cả các hình ảnh chưa sử dụng khỏi máy chủ của bạn cùng một lúc. Bạn có thể sử dụng lệnh prune để xóa tất cả các hình ảnh dangling, tất cả các hình ảnh chưa sử dụng hoặc kết hợp cả hai. Hình ảnh dangling là những hình ảnh không có ít nhất một container được liên kết với chúng.

8. Chạy lệnh docker image prune để xóa tất cả các hình ảnh chưa sử dụng/dangling khỏi hệ thống của bạn.
Mã:
docker image prune
Như bạn có thể thấy, lệnh prune đã xóa tất cả các hình ảnh chưa sử dụng và các lớp của chúng khỏi máy chủ của bạn và giúp bạn tiết kiệm rất nhiều dung lượng đĩa trong quá trình này.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E


9. Liệt kê lại các hình ảnh trên máy chủ của bạn để xác minh rằng các hình ảnh thực sự đã biến mất. Bây giờ bạn đã biết cách liệt kê, xóa và cắt tỉa hình ảnh khỏi máy chủ của mình. Những lệnh cơ bản này sẽ giúp bạn giữ cho hệ thống của mình sạch sẽ và ngăn nắp.
Mã:
docker image ls

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22705%22%20height=%2267%22%3E%3C/svg%3E

Kiểm tra hình ảnh Docker​

Bạn có thể nghĩ về hình ảnh và vùng chứa Docker như những chiếc hộp đen huyền bí. Bạn đang tự hỏi loại phép thuật nào đang diễn ra bên trong chúng. Trong phần này, chúng tôi sẽ giải tỏa một số sự huyền bí bằng cách xem xét những gì có trong một hình ảnh Docker và cách bạn có thể sử dụng thông tin đó để có lợi cho mình.

1. Docker cung cấp một cách để kiểm tra nội dung của một hình ảnh. Lệnh docker inspect sẽ lấy một đường dẫn đến một hình ảnh và in ra rất nhiều thông tin về hình ảnh đó, như được hiển thị trong ví dụ sau.
Mã:
docker inspect ubuntu
Như được hiển thị bên dưới, đầu ra từ lệnh trên chứa rất nhiều thông tin. Bạn đang xem tất cả thông tin ở đây theo định dạng được gọi là mảng JSON.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E



data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E


Thông tin trong đầu ra được hiển thị giống như một kho lưu trữ khóa-giá trị. Bạn có thể sử dụng một công cụ Linux như lệnh pipe (|) để grep đầu ra cho một từ khóa cụ thể. Sau đó, bạn có thể sử dụng đầu ra được piped cho bất kỳ mục đích nào bạn muốn. Các ví dụ sau đây minh họa cách bạn có thể sử dụng để thực hiện việc này.

2. Chạy lệnh bên dưới để lưu đầu ra của lệnh docker inspect vào một tệp có tên là image-inspect.txt.
Mã:
docker image inspect ubuntu > image-inspect.txt
3. Sau đó, sử dụng trình soạn thảo bạn chọn để mở tệp và kiểm tra nội dung của tệp.

sudo nano image-inspect.txt

Đầu ra của lệnh docker inspect chứa rất nhiều thông tin về một hình ảnh, như được hiển thị bên dưới. Bên trong trình soạn thảo, bạn có thể dễ dàng điều hướng như cuộn lên/xuống trình soạn thảo để kiểm tra thông tin khác nhau. Bạn có thể chỉnh sửa thông tin nếu muốn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E


Bạn cũng có thể sử dụng đối số --format để định dạng đầu ra theo một cách cụ thể.

4. Ví dụ, để in ID của ảnh ubuntu, bạn có thể sử dụng lệnh sau.
Mã:
docker image inspect ubuntu --format='{{.ID}}'

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2248%22%3E%3C/svg%3E


5. Liệt kê hình ảnh để xác minh ID hình ảnh.
Mã:
docker image ls

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2289%22%3E%3C/svg%3E


6. Chạy lệnh bên dưới để chuyển đầu ra của lệnh docker inspect đến lệnh more. Điều này sẽ cho phép bạn phân trang qua đầu ra để bạn có thể xem tất cả thông tin có trong đó.
Mã:
docker image inspect ubuntu | more
Lần này, bạn sẽ thấy Hostname(b32714f341a6) trong phần ContainerConfig, như hiển thị bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E


7. Còn nếu bạn chỉ muốn giá trị tên máy chủ (b32714f341a6) thì sao? Bạn có thể thực hiện điều này bằng cách chạy lệnh bên dưới.
Mã:
docker image inspect ubuntu --format='{{.ContainerConfig.Hostname}}'

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2237%22%3E%3C/svg%3E


Như bạn thấy, bạn có thể sử dụng lệnh docker inspect với các công cụ Linux để thực hiện thêm một số thao tác lọc. Giống như một phạm vi. Ví dụ, để liệt kê tất cả các địa chỉ IP trong phạm vi 192.168.0.0/16. Và bạn thậm chí có thể kết hợp nó với các công cụ viết kịch bản khác để làm nhiều điều thú vị hơn nữa.

Sử dụng thẻ Docker​

Khi bạn tiếp tục làm việc với hình ảnh Docker, bạn sẽ muốn bắt đầu sử dụng thẻ. Thẻ cho phép bạn dễ dàng xác định và quản lý hình ảnh của mình. Ví dụ: bạn có thể tạo thẻ cho từng môi trường mà hình ảnh được sử dụng hoặc cho từng khách hàng hoặc khách hàng mà hình ảnh được sử dụng. Điều này giúp bạn dễ dàng tìm thấy hình ảnh cụ thể mà bạn cần và theo dõi những hình ảnh nào đã được sử dụng cho mục đích nào.

Cú pháp để thêm thẻ vào hình ảnh như sau:
Mã:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
Thẻ của bạn có thể là bất kỳ chuỗi ASCII hợp lệ nào và có thể chứa các chữ cái thường và chữ hoa, chữ số, dấu gạch dưới, dấu chấm và dấu gạch ngang. Thẻ không được bắt đầu bằng dấu chấm hoặc dấu gạch ngang và không được dài quá 128 ký tự. Hãy cùng xem một ví dụ.

1. Để thêm thẻ vào hình ảnh, trước tiên chúng ta cần biết tên hoặc ID của hình ảnh mà chúng ta muốn gắn thẻ. Chúng ta có thể liệt kê tất cả các hình ảnh có sẵn trên hệ thống của mình bằng cách chạy lệnh sau:
Mã:
docker image ls
2. Bây giờ hãy chạy lệnh bên dưới để thêm thẻ "myubuntu" vào hình ảnh.
Mã:
docker tag ubuntu:latest ubuntu:myubuntu
3. Bây giờ nếu chúng ta chạy lại lệnh docker image ls, chúng ta có thể thấy rằng hình ảnh của chúng ta đã được gắn thẻ là "myubuntu".


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22203%22%3E%3C/svg%3E


Lưu ý rằng các thẻ chỉ là các bí danh. Nghĩa là một hình ảnh có thể có nhiều thẻ nhưng tất cả chúng đều tham chiếu đến cùng một hình ảnh nguồn. Vì vậy, bạn có thể sử dụng bất kỳ thẻ nào bạn muốn, miễn là nó có ý nghĩa với bạn. Và bạn nên thêm thẻ khi tạo hình ảnh để có thể dễ dàng theo dõi chúng sau này.

4. Chúng ta hãy xem thêm một ví dụ nữa. Giả sử chúng ta muốn tạo một hình ảnh Ubuntu với thẻ "original". Chúng ta có thể thực hiện điều này bằng cách chạy lệnh sau:
Mã:
docker tag myubuntu:latest myubuntu:original
Lệnh trên sẽ tạo một hình ảnh được gắn thẻ "bản gốc" dựa trên hình ảnh được gắn thẻ "mới nhất". Bây giờ chúng ta có hai hình ảnh myubuntu: một được gắn thẻ latest và một được gắn thẻ original, nhưng chúng đều trỏ về cùng một ID hình ảnh nguồn (2b4cba85892a).


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22156%22%3E%3C/svg%3E

Làm việc với Docker Registries​

Bây giờ chúng ta đã hiểu cơ bản về Docker image là gì, hãy cùng xem cách làm việc với registries. Docker Hub là sổ đăng ký công khai phổ biến nhất, nhưng vẫn còn nhiều tùy chọn khác.

Docker Hub là sổ đăng ký công khai miễn phí sử dụng cho cả mục đích cá nhân và thương mại. Nó có nhiều hình ảnh đa dạng và bạn cũng có thể tạo hình ảnh của riêng mình và chia sẻ với người khác. Để sử dụng Docker Hub, bạn chỉ cần tạo một tài khoản rồi cài đặt máy khách Docker. Sau đó, bạn có thể sử dụng lệnh docker search để tìm hình ảnh và lệnh docker pull để tải xuống.

Cho đến nay, chúng tôi đã làm việc với hình ảnh ubuntu có sẵn trên Docker Hub, mộtsổ đăng ký công khai của Docker. Tuy nhiên, bạn cũng có thể tạo sổ đăng ký riêng để lưu trữ hình ảnh của mình.

Triển khai sổ đăng ký Docker riêng​

Có một số lý do khiến bạn có thể muốn sử dụng sổ đăng ký riêng:
  • Để lưu trữ hình ảnh chỉ dùng cho mục đích sử dụng nội bộ.Có thể bạn có hình ảnh chứa thông tin nhạy cảm và không muốn công khai chúng. Hoặc có thể bạn muốn theo dõi những hình ảnh nào đã được sử dụng trong môi trường của mình và không muốn người khác có thể tải xuống mà không có sự cho phép của bạn.
  • Để tăng tốc độ tải xuống hình ảnh trong đường ống phân phối CI/CD của bạn bằng cách lưu trữ đệm cục bộ. Chạy sổ đăng ký của riêng bạn và tự lưu trữ là một cách tuyệt vời để liên kết và cải thiện hệ thống CI/CD của bạn.
1. Kiểm tra xem máy chủ docker của bạn đã sẵn sàng tạo sổ đăng ký cục bộ chưa.
Mã:
docker version
2. Chạy lệnh docker run bên dưới để chạy một sổ đăng ký cục bộ và riêng tư. Trong đó:
  • -p 5000:5000 = ánh xạ cổng 5000 trên máy chủ docker thành cổng 5000 trên container
  • --restart=always = đảm bảo rằng container luôn được khởi động lại nếu nó bị lỗi
  • --name registry = tên sổ đăng ký riêng tư của bạn
  • registry:2 = hình ảnh sẽ được sử dụng để tạo vùng chứa sổ đăng ký
Mã:
docker run -d -p 5000:5000 --restart=always --name registry registry:2

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22152%22%3E%3C/svg%3E


3. Chạy lệnh bên dưới để liệt kê tất cả các container đang chạy trên máy chủ docker của bạn.
Mã:
docker ps
Bạn sẽ thấy đầu ra sau. Đầu ra này cho biết container đăng ký đang hoạt động trên máy chủ docker của bạn. Ký hiệu :::5000->5000/tcp là một phím tắt ánh xạ cổng trên máy chủ docker tới cổng trên vùng chứa sổ đăng ký.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2252%22%3E%3C/svg%3E


Bây giờ chúng ta đã có sổ đăng ký riêng và đang chạy, hãy cùng xem cách thêm hình ảnh vào đó. Ví dụ sau đây cho thấy cách thêm hình ảnh ubuntu vào sổ đăng ký. Trước tiên, bạn sẽ cần kéo hình ảnh từ Docker Hub tới máy chủ cục bộ của mình và gắn cho nó một thẻ cụ thể. Sau đó, bạn sẽ đẩy hình ảnh vừa được gắn thẻ vào sổ đăng ký riêng của mình. Cuối cùng, xóa ảnh ubuntu khỏi máy chủ cục bộ của bạn và kéo ảnh từ sổ đăng ký riêng của bạn để kiểm tra.

4. Chạy lệnh bên dưới để tải ảnh ubuntu có thẻ 20.04 từ Docker Hub xuống máy chủ cục bộ của bạn.
Mã:
 docker image pull ubuntu:20.04

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2280%22%3E%3C/svg%3E


5. Tiếp theo, hãy chạy lệnh bên dưới để gắn thẻ hình ảnh Ubuntu đã tải xuống là "my-ubuntu". Bạn có thể sử dụng bất kỳ thẻ nào bạn muốn, nhưng tốt nhất là nên sử dụng thẻ nào đó có ý nghĩa đối với tổ chức của bạn.
Mã:
docker tag ubuntu:20.04 localhost:5000/my-ubuntu
6. Chạy lệnh bên dưới để đẩy hình ảnh vừa gắn thẻ vào sổ đăng ký riêng của bạn chạy ở cổng localhost:5000.
Mã:
docker push localhost:5000/my-ubuntu

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2277%22%3E%3C/svg%3E


7. Chạy lệnh bên dưới để xóa các hình ảnh ubuntu được lưu trữ cục bộ khỏi máy chủ cục bộ của bạn để kiểm tra sổ đăng ký riêng của bạn.
Mã:
docker image remove ubuntu:20.04 && docker image remove localhost:5000/my-ubuntu

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2248%22%3E%3C/svg%3E


8. Sau khi các hình ảnh ubuntu được lưu trữ cục bộ đã bị xóa, bạn có thể chạy lệnh bên dưới để kéo hình ảnh từ sổ đăng ký riêng của mình.
Mã:
docker pull localhost:5000/my-ubuntu
9. Chạy lệnh bên dưới để liệt kê tất cả các hình ảnh trên máy chủ docker của bạn.
Mã:
docker image ls
Bạn sẽ thấy hình ảnh my-ubuntu được liệt kê là được kéo từ sổ đăng ký riêng của mình, như hiển thị bên dưới. Đầu ra này xác nhận rằng hình ảnh đã được kéo thành công từ sổ đăng ký riêng của bạn và sổ đăng ký riêng của bạn đang hoạt động chính xác.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22215%22%3E%3C/svg%3E

Đẩy, Kéo và Ký Hình ảnh​

Docker cung cấp một số tùy chọn dòng lệnh để đẩy, kéo và tìm kiếm hình ảnh. Trong phần này, bạn sẽ tìm hiểu cách sử dụng các lệnh đó để quản lý hình ảnh của mình trong sổ đăng ký từ dòng lệnh trên máy chủ của bạn. Ví dụ này sử dụng Docker Hub để minh họa, nhưng bạn có thể sử dụng bất kỳ sổ đăng ký nào khác.

1. Chạy lệnh docker login để đăng nhập vào sổ đăng ký Docker Hub. Cung cấp tên người dùng và mật khẩu khi được nhắc. Nếu bạn không có tài khoản Docker Hub, bạn có thể tạo một tài khoản miễn phí tại https://hub.docker.com/.
Mã:
docker login

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22163%22%3E%3C/svg%3E


2. Sau khi đăng nhập, bạn đã sẵn sàng đẩy hình ảnh của mình. Giả sử bạn muốn đẩy hình ảnh mới nhất của ubuntu lên Docker Hub. Bạn cũng nên gắn thẻ hình ảnh bằng một tên có ý nghĩa để bạn có thể dễ dàng tham chiếu đến nó trong tương lai. Trong ví dụ này, bạn sẽ gắn thẻ hình ảnh là howtoforge/ubuntu:latest. Hãy thoải mái sử dụng tên thẻ mong muốn của bạn.
Mã:
docker tag ubuntu:latest howtoforge/ubuntu:latest
Mã:
docker push howtoforge/ubuntu:latest

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2271%22%3E%3C/svg%3E


3.Mở trình duyệt web của bạn và điều hướng đến Docker Hub. Bạn sẽ thấy hình ảnh của mình ở đó.Kho lưu trữ này được tạo dựa trên tên người dùng và thẻ bạn đã sử dụng. Trong ví dụ này, kho lưu trữ là howtoforge/ubuntu. Điều hướng đến tab thẻ, bạn sẽ thấy thẻ của mình đã được áp dụng thành công (mới nhất).




data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22521%22%3E%3C/svg%3E



data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22430%22%3E%3C/svg%3E


4. Chạy lệnh bên dưới để xóa ảnh ubuntu cục bộ để kiểm tra lệnh kéo.
Mã:
docker image rm howtoforge/ubuntu
Liệt kê các ảnh trên hệ thống của bạn để xác minh rằng ảnh ubuntu đã bị xóa.
Mã:
docker image ls

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22155%22%3E%3C/svg%3E


5. Chạy lệnh bên dưới để tải xuống ảnh my-ubuntu từ Docker Hub của bạn.
Mã:
docker pull howtoforge/ubuntu

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22106%22%3E%3C/svg%3E


6. Liệt kê lại các ảnh trên máy chủ của bạn để xác minh rằng ảnh ubuntu đã được kéo. Bạn sẽ thấy hình ảnh my-ubuntu trên hệ thống của mình.
Mã:
docker image ls

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22149%22%3E%3C/svg%3E


Trong khi làm việc với hình ảnh, bạn có thể muốn tìm kiếm hình ảnh cụ thể trên sổ đăng ký Docker. Bạn có thể sử dụng lệnh docker search để tìm kiếm hình ảnh trên Docker registries.

7. Chạy lệnh docker search để xem tất cả các tùy chọn và tham số khả dụng.
Mã:
man docker search
Bạn sẽ thấy đầu ra sau. Bạn có thể thấy tùy chọn lọc hữu ích như sau:
  • stars=: lọc kết quả tìm kiếm theo số sao mà hình ảnh có trên Docker Hub. Bạn có thể sử dụng tùy chọn này để tìm những hình ảnh phổ biến nhất.
  • is-automated=(true|false): lọc kết quả tìm kiếm để bao gồm hoặc loại trừ các bản dựng tự động. Bạn có thể sử dụng điều này để tìm hình ảnh là bản dựng tự động hoặc không.
  • is-official=(true|false): lọc kết quả tìm kiếm để bao gồm hoặc loại trừ hình ảnh chính thức. Bạn có thể sử dụng điều này để tìm hình ảnh được công ty hỗ trợ chính thức. Ví dụ: Ubuntu là công ty chính thức hỗ trợ hình ảnh Ubuntu. Nginx là công ty chính thức hỗ trợ hình ảnh Nginx. Bạn nên luôn sử dụng hình ảnh chính thức khi có thể vì chúng đã được công ty kiểm tra và có nhiều khả năng ổn định hơn. Khi gặp sự cố với hình ảnh chính thức, bạn có thể nhận trợ giúp từ công ty cung cấp hình ảnh.

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E


8. Ví dụ, chạy lệnh docker search --filter=stars=4 ubuntu để tìm kiếm ảnh ubuntu có 4 sao trở lên trên Docker Hub.
Mã:
docker search --filter=stars=4 ubuntu

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22398%22%3E%3C/svg%3E


9. Chạy lệnh bên dưới để tìm kiếm ảnh ubuntu là ảnh chính thức từ Ubuntu.
Mã:
docker search --filter=is-official=true ubuntu
Đầu ra sẽ là danh sách các kho lưu trữ chứa ảnh ubuntu và cho biết đó là ảnh Ubuntu chính thức (OK), như hiển thị bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22278%22%3E%3C/svg%3E


10. Chạy lệnh bên dưới để tìm kiếm hình ảnh ubuntu có ít nhất 100 sao được xếp hạng trên Docker Hub và là hình ảnh Ubuntu chính thức.
Mã:
docker search --filter="stars=100" --filter=is-official=true ubuntu

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2274%22%3E%3C/svg%3E


Hình ảnh Docker là một cách tuyệt vời để lưu trữ mã ứng dụng và cấu hình của bạn. Nhưng đồng thời, rất dễ tích lũy nhiều hình ảnh không sử dụng, đặc biệt là nếu bạn đang thử nghiệm các ứng dụng khác nhau hoặc thử các cấu hình khác nhau. Bạn có thể thấy rằng bạn không còn cần một số hình ảnh trong sổ đăng ký của mình nữa.

Bạn có thể xóa một hình ảnh bằng cách điều hướng đến kho lưu trữ chứa hình ảnh đó và nhấp vào nút xóa.

11. Ví dụ, trên Docker Hub, hãy điều hướng đến kho lưu trữ howtoforge/ubuntu. Nhấp vào Cài đặt > Xóa kho lưu trữ. Xác nhận rằng bạn muốn xóa kho lưu trữ bằng cách nhập tên kho lưu trữ. Nhấp vào Xóa.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22492%22%3E%3C/svg%3E



data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22713%22%20height=%22247%22%3E%3C/svg%3E


Quay lại bảng điều khiển và bạn sẽ thấy kho lưu trữ howtoforge/ubuntu hiện đã bị xóa cùng với ubuntu image.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22288%22%3E%3C/svg%3E

Kết luận​

Xin chúc mừng! Bây giờ bạn đã đến cuối bài viết. Bây giờ bạn đã có hiểu biết cơ bản về Docker image và cách làm việc với chúng. Sau đây là hướng dẫn về cách tạo Docker image. Nếu bạn muốn tìm hiểu thêm về Docker, chúng tôi khuyên bạn nên đọc tài liệuchính thức của Docker, nơi bạn có thể tìm thấy thêm thông tin về các chủ đề như:
  • Dockerfiles
  • Networking
  • Volumes
  • Services
  • Swarm mode
 
Back
Bên trên