๐ Complete Docker Image Publishing CheatSheet ๐ณ๐
๐ What is a Docker Registry?
A Docker registry is a storage for Docker images ๐๏ธ. You can:
- โ Push your custom images to it
- ๐ฅ Pull images when needed
- ๐ Optionally set them private/public
๐ Popular Registries:
- ๐ณ Docker Hub (hub.docker.com)
- ๐ GitHub Container Registry (ghcr.io)
- โ๏ธ Google Artifact Registry / Amazon ECR / GitLab / Azure ACR
โจ Structure of Docker Image Name
<registry>/<username>/<repo>:<tag>
| Part | Example | Meaning |
|---|---|---|
| Registry |
docker.io (default) |
Where image is stored ๐ |
| Username | dpvasani56 |
Your DockerHub or GitHub ID ๐ค |
| Repo | node-application |
Your app/project name ๐ฆ |
| Tag |
v1, latest
|
Version tag ๐ท๏ธ |
๐ Two Ways to Publish Docker Image to Docker Hub
๐ฆ Step 0: Build the image
docker build -t dpvasani56/node-application:v1 .
๐งญ Method 1: Manual Push to Docker Hub
โ Step-by-step:
1๏ธโฃ Login to Docker Hub
docker login
๐ง Enter your Docker Hub username and password.
2๏ธโฃ Push your image
docker push dpvasani56/node-application:v1
โ
Image will now appear on your Docker Hub at:
๐ https://hub.docker.com/r/dpvasani56/node-application
3๏ธโฃ Pull from any system
docker pull dpvasani56/node-application:v1
๐ฏ Then run:
docker run -p 3000:3000 dpvasani56/node-application:v1
๐ง Method 2: Push from GitHub via GitHub Container Registry (ghcr.io)
๐ง Step-by-step:
1๏ธโฃ Create a GitHub repo
Name it like: node-application
2๏ธโฃ Login to GitHub Container Registry
echo <GH_TOKEN> | docker login ghcr.io -u USERNAME --password-stdin
๐ก Use a Personal Access Token (PAT) from GitHub with
write:packagespermission.
3๏ธโฃ Tag your image
docker tag node-application ghcr.io/dpvasani56/node-application:v1
4๏ธโฃ Push to GitHub Container Registry
docker push ghcr.io/dpvasani56/node-application:v1
โ
Image is now available at:
๐ https://github.com/dpvasani56/packages
๐ Tagging Summary
# Tag for DockerHub
docker tag node-application dpvasani56/node-application:v1
# Tag for GitHub Registry
docker tag node-application ghcr.io/dpvasani56/node-application:v1
๐งผ Optional Cleanup
docker image rm <image-name>
Use this to save space once pushed.
๐ง Bonus: Automate with GitHub Actions
Use this snippet in .github/workflows/docker.yml:
jobs:
push_to_registry:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Log in to GitHub Container Registry
run: echo "${{ secrets.GH_PAT }}" | docker login ghcr.io -u dpvasani56 --password-stdin
- name: Build and Push
run: |
docker build -t ghcr.io/dpvasani56/node-application:v1 .
docker push ghcr.io/dpvasani56/node-application:v1
โ
Set GH_PAT as a GitHub secret with correct permissions.
๐ฅ Quick Recap Table
| Action | Docker Hub | GitHub Container Registry |
|---|---|---|
| Login | docker login |
docker login ghcr.io |
| Tag | dpvasani56/app:v1 |
ghcr.io/dpvasani56/app:v1 |
| Push | docker push dpvasani56/app:v1 |
docker push ghcr.io/dpvasani56/app:v1 |
| Pull | docker pull dpvasani56/app:v1 |
docker pull ghcr.io/dpvasani56/app:v1 |
๐งพ Sample Push Command (Your Request)
docker push dpvasani56/node-application:v1
โ This pushes your image to Docker Hub under your account.
๐ท๏ธ Step-by-Step: Tag & Push Docker Image to Docker Hub (dpvasani56/node-application)
Assume your image is locally named:
my-app
And you want to push it as:
๐ฆ dpvasani56/node-application
๐ง Step 1: Tag the Image
๐ท๏ธ Think of this as giving your image a Docker Hub label ๐ซ
docker tag my-app dpvasani56/node-application
โ This tags your image for Docker Hub upload.
โ Optional: Add a Version Tag
docker tag my-app dpvasani56/node-application:v1
๐ฏ This is better for version control in CI/CD and releases.
๐ Step 2: Login to Docker Hub
docker login
โก๏ธ Enter Docker Hub credentials for dpvasani56.
๐ค Step 3: Push the Image
๐ With version tag:
docker push dpvasani56/node-application:v1
๐ Or default (latest tag):
docker push dpvasani56/node-application
โ
Image now available at:
๐ https://hub.docker.com/r/dpvasani56/node-application
๐ฅ Step 4: Pull & Use It Anywhere
docker pull dpvasani56/node-application:v1
Run the app:
docker run -p 3000:3000 dpvasani56/node-application:v1
๐ฆ All Commands Recap
# ๐จ Build your image
docker build -t my-app .
# ๐ท๏ธ Tag for Docker Hub
docker tag my-app dpvasani56/node-application:v1
# ๐ Login to Docker Hub
docker login
# ๐ค Push to Docker Hub
docker push dpvasani56/node-application:v1
# ๐ฅ Pull from Docker Hub (anywhere)
docker pull dpvasani56/node-application:v1
# โถ๏ธ Run it
docker run -p 3000:3000 dpvasani56/node-application:v1
๐ง Helpful Tips
| Command | Use |
|---|---|
docker images |
View tagged images locally ๐๏ธ |
docker rmi <image> |
Remove an image locally ๐งน |
docker ps |
View running containers ๐ |
docker stop <id> |
Stop a container manually ๐ |
Top comments (0)