Docker - Các Registries Riêng tư

Giới thiệu về Docker Registries

Xin chào các bạnfuture Docker masters! Hôm nay, chúng ta sẽ cùng lặn vào thế giới kỳ diệu của Docker registries. Đừng lo lắng nếu bạn là người mới bắt đầu; tôi sẽ hướng dẫn bạn từng bước một, giống như tôi đã làm cho hàng trăm học viên trong những năm dạy học của mình. Hãy bắt đầu hành trình của chúng ta!

Docker - Registries

Một Docker registry giống như một thư viện cho các Docker images của bạn. Đây là nơi bạn có thể lưu trữ, quản lý và phân phối các images này. Hãy tưởng tượng nó như một kệ sách nơi bạn để tất cả các cuốn sách yêu thích (hoặc trong trường hợp này, Docker images) một cách ngăn nắp và dễ dàng tiếp cận.

Các Loại Docker Registries

Có hai loại Docker registries chính:

  1. Public registries (như Docker Hub)
  2. Private registries

Hôm nay, chúng ta sẽ tập trung vào private registries. Nhưng tại sao bạn lại muốn một registry riêng tư? Hãy tưởng tượng bạn đang viết một công thức bí mật. Bạn không muốn đăng nó lên một bảng thông báo công khai, phải không? Đó là lúc private registries phát huy tác dụng!

Thiết lập một Registry Riêng tư

Hãy cuộn lên áo và thiết lập registry riêng tư của chúng ta. Nó dễ dàng hơn bạn nghĩ!

Bước 1: Kéo Image Registry

Đầu tiên, chúng ta cần kéo image registry chính thức từ Docker Hub. Mở terminal và gõ:

docker pull registry:2

Lệnh này giống như yêu cầu thư thư viện mang đến cuốn "registry" từ thư viện "Docker Hub".

Bước 2: Chạy Container Registry

Bây giờ, hãy khởi động registry của chúng ta:

docker run -d -p 5000:5000 --name my-registry registry:2

Hãy phân tích này:

  • -d: Chạy container trong chế độ tách biệt (trên nền)
  • -p 5000:5000: Gán cổng 5000 của container vào cổng 5000 trên máy chủ của bạn
  • --name my-registry: Đặt tên container của chúng ta là "my-registry"
  • registry:2: Image chúng ta sử dụng để tạo container

Chúc mừng! Bây giờ bạn đã có một registry riêng tư đang chạy trên máy của bạn.

Push Images vào Registry Riêng tư của Bạn

Bây giờ chúng ta có registry, hãy đặt một số images vào trong nó!

Bước 1: Đặt Tag cho Image

Trước tiên, chúng ta cần đặt tag cho một image để liên kết nó với registry của chúng ta:

docker tag my-image:latest localhost:5000/my-image:latest

Điều này giống như dán một tem đặc biệt lên cuốn sách để cho thấy nó thuộc thư viện riêng tư của bạn.

Bước 2: Push Image

Bây giờ, hãy push image này vào registry của chúng ta:

docker push localhost:5000/my-image:latest

Bạn vừa thêm cuốn sách đầu tiên vào thư viện riêng tư của bạn!

Kéo Images từ Registry Riêng tư của Bạn

Để sử dụng một image từ registry riêng tư của bạn, bạn có thể kéo nó như sau:

docker pull localhost:5000/my-image:latest

Đó là đơn giản! Bạn bây giờ đang lấy sách từ thư viện riêng tư của bạn.

Bảo mật Registry Riêng tư của Bạn

Bây giờ, chúng ta không muốn bất kỳ ai có thể truy cập thư viện riêng tư của chúng ta, phải không? Hãy thêm một chút bảo mật.

Sử dụng Xác thực Cơ bản

Dưới đây là cách thiết lập xác thực cơ bản:

  1. Tạo một file mật khẩu:
docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > auth/htpasswd
  1. Chạy registry với xác thực:
docker run -d \
-p 5000:5000 \
--name secure-registry \
-v "$(pwd)"/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
registry:2

Bây giờ registry của bạn được bảo vệ bằng tên người dùng và mật khẩu!

Các Lệnh Docker Registry Hữu Ích

Dưới đây là bảng các lệnh bạn có thể thấy hữu ích:

Lệnh Mô tả
docker pull registry:2 Kéo image registry
docker run -d -p 5000:5000 --name my-registry registry:2 Chạy container registry
docker tag image:tag localhost:5000/image:tag Đặt tag cho image cho registry local
docker push localhost:5000/image:tag Push image vào registry local
docker pull localhost:5000/image:tag Kéo image từ registry local
docker search localhost:5000/ Tìm kiếm registry local

Kết luận

Và thế là bạn đã có registry Docker riêng tư của mình! Hãy nhớ, thực hành làm cho hoàn hảo. Đừng ngại thử nghiệm và thử làm điều khác nhau. Ai biết? Bạn có thể khám phá điều gì đó mới mẻ và thú vị!

Trong những năm dạy học của mình, tôi đã thấy học viên từ người mới bắt đầu trở thành các pháp sư Docker. Với sự kiên nhẫn và kiên trì, bạn cũng sẽ đến được đó. Hãy tiếp tục push (pun intended) và chúc bạn vui vẻ với Dockering!

Credits: Image by storyset