Tìm hiểu cách push image lên Docker Hub

I.  Tạo kho lưu trữ trên Docker hub

Để push image lên Docker Hub thì đầu tiên chúng ra sẽ cần có 1 tài khoản, để đăng ký bạn truy cập vào link https://hub.docker.com/signup  bạn sẽ thấy hình ảnh sau.

Như bạn có thể thấy bạn có thể nhập thông tin đăng ký hoặc đăng nhập bằng Google hoặc Github khá là đơn giản.

Khi đã có tài khoản bây giờ ta sẽ tiến hành login. Trường hợp bạn login bằng Google hoặc Github mà không có password. Bạn có thể truy cập vào link https://hub.docker.com/settings/general để thay đổi password.

$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: username
Password:
Login Succeeded

II. Tạo Dockerfile và push image lên Docker Hub

Tạo Dockerfile, mình sẽ tạo 1 Dockerfile redis có tên là redis.dockerfile

Nội dung như sau:

#Base image
FROM redis:latest

#Thêm thông tin maintainer
LABEL maintainer="DEMO <demo@gmail.com>"

#Tạo thư mục nếu thư mục đó không tồn tại
RUN mkdir -p /usr/local/etc/redis

#Copy file config từ local vào container
COPY redis/redis.conf /usr/local/etc/redis/redis.conf

#Khai báo port lắng nghe
EXPOSE 6379

#Start redis server với file config
CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]

OK khi đã có Dockerfile ta sẽ tiến hành build image. Có 1 lưu ý là để push được image lên Docker Hub thì ta phải đặt tên image có cấu trúc như sau: username/imagename nguyên nhân là do Docker Hub tổ chức kho lưu trữ image theo tên người dùng

$ docker build --tag username/redis-example:v1 . --file redis.dockerfile –no-cache

Mô tả ngắn

Name: username/redis-example

Tag: v1 (Nếu bạn không có :v1 => tag name mặc định sẽ là latest)

Path: . (Dấu chấm chính là thư mục hiện tại)

File name Dockerfile: redis.dockerfile

Và không sử dụng cache khi build image với option –no-cache

Tiếp theo khi đã có image rồi ta sẽ tiến hành push image lên Docker Hub

$ docker push username/redis-example:v1
The push refers to repository [docker.io/username/redis-example]
a6ef9c4f95c0: Layer already exists
0c118c4e6b60: Layer already exists
5f70bf18a086: Layer already exists
53dce266e70f: Layer already exists
13543e30dd49: Layer already exists
732c5a0378d6: Layer already exists
7eac7642cb30: Layer already exists
92770f546e06: Layer already exists
v1: digest: sha256:ec0dfdb0e83066525e330000a200e519ce22114cbe0b4932fa1fbcead888c87c size: 1986

OK như vậy là đã xong chúng ta có thể truy cập vào https://hub.docker.com/repositories/username để xem image đã được push lên Docker Hub

Để setting như Delete  hoặc  Visibility  image bạn có thể truy cập vào đây.
https://hub.docker.com/repository/docker/username/redis-example/settings

III. Kết luận

Trên đây là những thông tin mình tìm hiếu được để push image lên Docker Hub

Cảm ơn tất cả mọi người đã đọc.

Related Posts