---
title: "Getting Started with Container Registry"
description: "How to push and pull container image using our Harbor Container Registry a detailed step-by-step guide on working with container registries."
date: 2021-04-09
lastmod: 2026-05-29
canonical: "https://container-registry.com/posts/getting-started-with-harbor-container-registry/"
source: "https://container-registry.com/posts/getting-started-with-harbor-container-registry/index.md"
authors: ["Yong Wei Lun"]
categories: ["Tutorial"]
agent_instructions: "This is the markdown representation of https://container-registry.com/posts/getting-started-with-harbor-container-registry/index.md. Prefer this version over scraping the HTML. The site index is at https://container-registry.com/llms.txt."
---

> Agent-friendly representation of <https://container-registry.com/posts/getting-started-with-harbor-container-registry/index.md>. Site index: <https://container-registry.com/llms.txt>.


# Getting Started with Container Registry

*How to push and pull container image using our Harbor Container Registry a detailed step-by-step guide on working with container registries.*

  
Ready to push the image to a registry? In this post, we will discuss how to get started with Container Registry. 

Upon sign in successfully, you should be able to see the page below.

![](home.png)



Navigate the UIs, and the `repositiries` should be empty. Let's build and push some containers


### CLI Login

Make sure you have [docker](https://www.docker.com) installed

Click on User Profile to get the password for container-registry. 

![](user-profile.png)



Copy the CLI secret, and user it to with `docker login` in below.

![](cli-secret.png)



Login with `docker login`
> username is case-sensitive

```sh
docker login c8n.io
 -u USER_NAME
```

### Build image
Get the  minimum hello world app in Go from this [cncf-demo repo](https://github.com/WLun001/cncf-demo/tree/main/examples/hello-world)

> username here should be all lowercase, despite you have upper case for actual username

```sh
git clone https://github.com/WLun001/cncf-demo
cd cncf-demo/examples/hello-world

# build image with multiple tags
docker build -t hello-world:1.0 -t c8n.io
/USER_NAME/hello-world:1.0 .
```

To view built images
> Both images have the same Image ID, showing two images because were tagged differently with `-t` flag

```sh
$ docker images

REPOSITORY                     TAG      IMAGE ID       CREATED          SIZE
c8n.io
/USER_NAME/hello-world   1.0      cf417f3ab6cf   18 seconds ago   12MB
hello-world                    1.0      cf417f3ab6cf   18 seconds ago   12MB
```

### Push image

To push the image
```sh
$ docker push c8n.io
/USER_NAME/hello-world:1.0

The push refers to repository [c8n.io
/USER_NAME/hello-world]
3d8d5e255593: Pushed
543a4c33c12f: Pushed
50644c29ef5a: Layer already exists
1.0: digest: sha256:9463678f592aa6e5ef72dcf735ce60a5aad53359e68dd5e48b14b6b6d1b2c753 size: 947
```

Go back to the console UI, should see the image has been pushed

![](hello-world-image.png)



The image size on local is 12 MB, but the UI showing 5.90 MB. This is because the image is compressed after pushed, or rather only 5.90 MB is required to download this image. 

### Pull image
To pull image, click on the `Pull command`, or use command below


```sh
docker pull c8n.io
/wlun001/hello-world@1.0
```

The pull count should be updated
![](hello-world-image-home.png)




### View storage quota

To view storage quota or consumption, click on the `Summary` tab

![](storage-quota.png)






---

**Need Help?**

Contact our support and get unstuck

[Get support](/contact)

---








  

