Cách thiết lập Elastic Container Registry (ECR) cho Docker trên AWS

theanh

Administrator
Nhân viên
Amazon Elastic Container Registry (ECR) là dịch vụ đăng ký container được quản lý của AWS. Dịch vụ này nằm trong mục "Compute" trên AWS Console. Dịch vụ này được sử dụng để lưu trữ, quản lý và triển khai Docker Container Images. ECR được tích hợp với Amazon Elastic Container Service (ECS).

Với ECR, không có phí trả trước. Chúng tôi chỉ trả cho lượng dữ liệu chúng tôi lưu trữ trong kho lưu trữ của mình và dữ liệu được truyền lên Internet. Để hiểu thêm về thanh toán ECR, nhấp vào đây.

Trước khi tiếp tục, chúng ta hãy tìm hiểu một số thuật ngữ mà chúng ta sẽ thấy sau trong bài viết này.

Registry: Đây là nơi chúng ta có thể tạo kho lưu trữ hình ảnh trong đó và lưu trữ hình ảnh trong đó.

Mã thông báo ủy quyền: Máy khách Docker phải xác thực với các sổ đăng ký Amazon ECR với tư cách là người dùng AWS trước khi có thể đẩy và kéo hình ảnh. Thông tin xác thực có thể được lấy từ lệnh get-login của AWS CLI để chuyển đến Docker.

Repository: Kho lưu trữ hình ảnh chứa hình ảnh Docker. Chính sách kho lưu trữ

Hình ảnh: Chúng ta có thể đẩy và kéo hình ảnh Docker vào kho lưu trữ của mình. Chúng ta có thể sử dụng những hình ảnh này cục bộ trên hệ thống của mình.

Trong bài viết này, chúng ta sẽ xem cách tạo sổ đăng ký ECR, kho lưu trữ và đẩy và kéo hình ảnh Docker vào/từ kho lưu trữ đó. Tôi sẽ cố gắng giữ cho tài liệu này đơn giản nhất có thể để những người mới làm quen với tài liệu này không cần nhiều nỗ lực để hiểu.

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

  1. Tài khoản AWS (Tạo nếu bạn chưa có)
  2. Máy chủ Ubuntu 18.04 hoặc Phiên bản EC2 Ubuntu 18.04 (Nhấp vào đây để tìm hiểu cách tạo phiên bản EC2 nếu bạn chưa có hoặc nếu bạn muốn tìm hiểu)
  3. Docker được cài đặt sẵn trên hệ thống của bạn.

Chúng tôi sẽ làm gì?​

  1. Đăng nhập vào AWS.
  2. Tạo kho lưu trữ ECR.
  3. Cài đặt AWS CLI trên máy chủ Linux
  4. Xác thực máy khách Docker từ Terminal và gắn thẻ& Tải hình ảnh cục bộ lên kho lưu trữ ECR.
  5. Gỡ thẻ và xóa hình ảnh khỏi hệ thống cục bộ và kéo kho lưu trữ ECR.

Đăng nhập vào AWS​

  1. Nhấp vào đâyđể đến Trang đăng nhập AWS.
Khi chúng ta nhấp vào liên kết trên, chúng ta sẽ thấy một trang web như sau, tại đó chúng ta được yêu cầu đăng nhập bằng thông tin đăng nhập của mình.


Tạo ECR Repo​

Để tạo ECR Repo, hãy nhấp vào mũi tên gần "Dịch vụ" và bạn sẽ thấy danh sách các Dịch vụ AWS.

Nhấp vào "ECR" từ danh sách. Bạn có thể chọn vùng mong muốn. Ở đây tôi đang tiến hành với Paris.



Bạn sẽ thấy một màn hình như sau.

Nhấp vào "Bắt đầu" để tạo kho lưu trữ đầu tiên của bạn.



Bây giờ trên màn hình tiếp theo, hãy đặt tên mà bạn muốn cho kho lưu trữ cần tạo.

Trên cùng một màn hình, bạn có thể thấy hai tùy chọn khả dụng.
  1. Tính bất biến của thẻ:Tính năng này ngăn thẻ hình ảnh bị ghi đè bởi các lần đẩy hình ảnh tiếp theo sử dụng cùng một thẻ.
    [*] Quét khi đẩy:
    Sử dụng tính năng này, chúng ta có thể bật quét khi đẩy để tự động quét từng hình ảnh sau khi được đẩy lên kho lưu trữ.

Hiện tại, chúng ta sẽ không bật các tính năng này.

Chỉ cần nhấp vào "Tạo kho lưu trữ" để tiếp tục.



Bây giờ bạn có thể thấy kho lưu trữ đã sẵn sàng để sử dụng.


Cài đặt AWS CLI trên Máy chủ Linux​

Bạn cũng sẽ cần lệnh "aws" trên hệ thống của mình.

Để cài đặt "aws" trên hệ thống Ubuntu, bạn chỉ cần nhập các lệnh sau
Mã:
apt-get update
Mã:
apt-get install awscli

Xác thực máy khách Docker từ thiết bị đầu cuối và gắn thẻ& Tải ảnh hiện có lên ECR Repo.​

Sau khi có lệnh “aws” trên hệ thống, chúng ta cần xác thực máy khách Docker vớisổ đăng ký và để làm được điều đó, chúng ta cần có một hệ thống đã cài đặt Docker.

Bạn có thể tham khảo trang chính thức của Docker để cài đặt Docker trên hệ thống của bạn.

Chúng ta có thể xác minh phiên bản Docker bằng lệnh "docker --version".



Trước khi xác thực máy khách Docker với sổ đăng ký, chúng ta cần xuất aws_access_key_id và aws_secret_access_key của mình.

Tham khảoTài liệu chính thức của AWS để biết thêm thông tin về điều này.

Sử dụng các lệnh sau để xuất các khóa cần thiết.
Mã:
aws configure set aws_access_key_id YOUR_ACCESS_KEY
Mã:
aws configure set aws_secret_access_key YOUR_SECRET_KEY
Mã:
aws configure set default.region YOUR_DEFAULT_REGION
Mã:
aws configure set default.output json
Sau khi xuất các giá trị này, chúng ta đã sẵn sàng đểxác thực máy khách Docker vào sổ đăng ký của mình.

Đầu tiên, hãy nhấp vào kho lưu trữ rồi nhấp vào “Xem lệnh đẩy”:



Chúng ta sẽ thấy tất cả các lệnh cần thiết sau khi nhấp vào “Xem lệnh đẩy”:



Sao chép lệnh đầu tiên và thực thi lệnh đó từ hệ thống của bạn đểxác thực máy khách Docker vào sổ đăng ký của mình.



Bây giờ, hãy kéo một hình ảnh từ Docker Hub mà chúng ta sẽ đẩy lên ECR Repo hoặc tự xây dựng từ Dockerfile của bạn. Ở đây tôi sẽ kéo hình ảnh apache/httpd và sau đó đẩy nó
Mã:
docker pull httpd
Liệt kê các hình ảnh để xem các hình ảnh có sẵn trên hệ thống cục bộ.
Mã:
hình ảnh docker
Sao chép lệnh thứ hai nếu bạn muốn xây dựng hình ảnh của riêng mình hoặc chuyển đến lệnh thứ ba và thực thi lệnh đó


thẻ docker <Tên_hình_ảnh>:<Thẻ> <ECR_Repo>:<TAG>

Đây rồi,

thẻ docker httpd:latest 064827688814.dkr.ecr.eu-west-3.amazonaws.com/rahul-ecr-repo:latest

KHÔNG SỬ DỤNG địa chỉ này vì tôi đã xóa kho lưu trữ.

Bây giờ chúng ta đã sẵn sàng để đẩy Hình ảnh lên ECR.

Sao chép lệnh thứ tư và thực thi.

Lệnh này sẽ đẩy hình ảnh thành công lên ECR Repo.


Gỡ thẻ và xóa Ảnh khỏi hệ thống cục bộ và kéo từ Kho lưu trữ ECR​

Chúng ta có thể xóa Ảnh cục bộ nếu bạn không còn cần nữa.

docker rmi <Image_Name>

Đây rồi,
Mã:
docker rmo httpd
Tương tự như vậy, bạn có thể xóa Ảnh đã gắn thẻ khỏi hệ thống cục bộ.

Sau đó, bạn có thể thử kéo Ảnh từ kho lưu trữ ECR.

Truy cập kho lưu trữ và Sao chép Ảnh URI:
Mã:
docker pull “IMAGE_URI”

Kết luận​

Trong bài viết này, chúng ta đã học cách tạo ECR Repository, đăng nhậpmáy khách Docker, gắn thẻ Image cục bộ và đẩy nó lên ECR Repo rồi kéo nó về.
 
Back
Bên trên