FresherKỹ thuậtDocker
Container registry là gì, và docker pull cùng docker push làm gì?
Thử trả lời trước
Đáp án mẫu
Registry là một server lưu trữ và phân phối container image. Docker Hub là registry công khai mặc định. Các team cũng dùng registry private như Amazon ECR, GitHub Container Registry, Google Artifact Registry, Azure Container Registry hoặc Harbor.
Một tham chiếu image có dạng registry/repository:tag, ví dụ registry.example.com/team/app:1.4.2. Nếu tên không có registry, Docker dùng Docker Hub, và nếu không có tag, Docker dùng latest.
docker pulltải một image từ registry về. Các layer của image được lưu riêng, nên Docker chỉ tải các layer mà bạn chưa có.docker pushtải một image cục bộ lên registry, cũng chỉ gửi những layer mà registry chưa có.
docker login registry.example.com
docker tag app:1.4.2 registry.example.com/team/app:1.4.2
docker push registry.example.com/team/app:1.4.2
docker pull registry.example.com/team/app:1.4.2
Bạn phải tag image với tên registry trước khi push, và đăng nhập trước với registry private.
Registry là nơi dùng chung mà CI publish image lên và các server pull về.
Ý chính
- Registry lưu trữ và phân phối image
- Định dạng tham chiếu là registry/repository:tag
- Pull và push chỉ truyền các layer còn thiếu
- Tag kèm tên registry và đăng nhập trước khi push
Câu hỏi nối tiếp thường gặp
- Tag và digest khác nhau như thế nào?
Lỗi thường gặp
- Push image có tên không kèm tiền tố registry và đẩy nhầm lên Docker Hub
- Quên rằng không có tag nghĩa là latest