Docker Registry và Docker Repo – Bài 6

Trong bài học này, chúng ta sẽ cùng tìm hiểu về Docker Registry – nơi lưu trữ các image (ảnh container) mà bạn sử dụng trong quá trình phát triển hoặc triển khai ứng dụng.

Xem thêm:

Attach và Detach trong Docker – Chạy container foreground hay background? – Bài 4

Cách truy cập container trong Docker để kiểm tra và xử lý sự cố – Bài 5

1. Repo (Repository) là gì?

Để dễ hình dung, hãy tưởng tượng bạn dùng điện thoại để tải ứng dụng.

  • Với iPhone, bạn vào App Store để tải các app như Facebook, Google Maps, v.v.
  • Với Android, bạn vào CH Play (Play Store) để tải các app tương tự.

App Store hay Play Store chính là nơi tập trung các ứng dụng, bạn tìm và cài đặt dễ dàng.

Với Linux hay Docker cũng vậy – nơi để tập trung các phần mềm hoặc container image, gọi là repo (repository) hay registry.

2. Docker Hub – kho chứa mặc định của Docker

Docker Hub là một kho chứa chính thức, nơi bạn có thể tìm thấy hàng ngàn image từ cộng đồng và các nhà phát triển lớn như:

  • mysql
  • nginx
  • python
  • ubuntu

Khi bạn chạy lệnh như docker pull nginx, Docker sẽ tự động tải image đó từ Docker Hub.

3. Cấu trúc một image trong Docker Hub

Khi bạn chạy lệnh docker pull, có một số phần bạn cần biết:

docker pull [registry/]username/image[:tag]

Ý nghĩa:

  • registry: tên domain registry (thường là docker.io – mặc định).
  • username: tên người dùng (bắt buộc nếu không phải image chính thức).
  • image: tên image.
  • tag: phiên bản, mặc định là latest.

Ví dụ:

docker pull python           # tải image python mới nhất (official)
docker pull yourname/myapp  # tải image do bạn tự upload
docker pull python:3.7      # tải đúng version 3.7

4. Đăng ký tài khoản Docker Hub

Để đẩy (push) image của riêng bạn lên Docker Hub, bạn cần:

  1. Đăng ký tại: https://hub.docker.com
  2. Sau đó đăng nhập:
docker login
  1. Gắn tag cho image của bạn:
docker tag <image-id> <username>/<image-name>:<tag>
  1. Đẩy lên Docker Hub:
docker push <username>/<image-name>:<tag>

Sau khi đẩy xong, image của bạn sẽ công khai trên Docker Hub, và người khác có thể docker pull để sử dụng!

5. Tạo Docker Registry Private (Private Docker Repo)

Trong môi trường doanh nghiệp, nhiều công ty không cho phép kết nối internet để đảm bảo bảo mật.

Giải pháp là: tạo một registry riêng trong nội bộ.

Lợi ích:

  • Không cần internet để kéo image.
  • Chủ động kiểm soát version, nội dung, và độ bảo mật.
  • Giúp đồng bộ giữa các máy chủ trong hệ thống nội bộ.

Ý tưởng triển khai:

  • Một server làm private registry (kho chứa nội bộ).
  • Các server khác pull/push image từ registry này.
  • Tất cả hoạt động trong mạng nội bộ (intranet).

6. Tổng kết

  • Repository hay Registry là nơi chứa các container image.
  • Docker sử dụng Docker Hub làm mặc định.
  • Bạn có thể pull image chính thức hoặc image cá nhân.
  • Để chia sẻ image riêng, bạn cần tạo tài khoản và push image lên.
  • Trong môi trường doanh nghiệp, có thể tự cài private registry để hoạt động offline.

Bài viết cùng chủ đề:

Hướng dẫn Mapping Port trong Docker – Mở port (expose và publish) – Bài 7

Hướng dẫn sử dụng Docker Volume – Bài 8

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em