Find the Best Cosmetic Hospitals

Explore trusted cosmetic hospitals and make a confident choice for your transformation.

โ€œInvest in yourself โ€” your confidence is always worth it.โ€

Explore Cosmetic Hospitals

Start your journey today โ€” compare options in one place.

GitLab Deploy – Container Registry – A Complete Guide

Here’s a complete step-by-step guide for:

โœ… Building a Docker image
โœ… Storing (pushing) it to GitLab’s Container Registry
โœ… Using GitLab CI/CD pipeline with GitLab SaaS 18.x


๐Ÿš€ Use Case

You want to:

  • Build a Docker image from your code
  • Push it to GitLabโ€™s Container Registry
  • Use it later for deployment or as base image

๐Ÿงฑ Prerequisites

  • A GitLab project on GitLab.com (SaaS)
  • GitLab CI/CD enabled
  • .gitlab-ci.yml file created
  • Dockerfile at the root of your project

๐Ÿ“ Step 1: Create a Dockerfile

Hereโ€™s an example Dockerfile for a Java app:

# syntax=docker/dockerfile:1
FROM openjdk:17-jdk-slim
COPY ./target/myapp.jar /app/myapp.jar
CMD ["java", "-jar", "/app/myapp.jar"]
Code language: PHP (php)

Make sure your JAR is built to ./target/myapp.jar via Maven or Gradle.


๐Ÿ“ฆ Step 2: Understand Your GitLab Container Registry URL

GitLab automatically enables a private container registry for every project:

registry.gitlab.com/<namespace>/<project>
Code language: HTML, XML (xml)

๐Ÿ“Œ Example:

registry.gitlab.com/yourusername/myapp

You can view it in:
Project โ†’ Deploy โ†’ Container Registry

  • โœ… <namespace> can be:
    • A personal username (yourusername)
    • A GitLab group (yourgroup)
    • A GitLab subgroup path (yourgroup/subgroup)
  • โœ… <project> is always the project name

โš™๏ธ Step 3: Configure .gitlab-ci.yml

Hereโ€™s a full working example:

stages:
  - build
  - dockerize
  - push

variables:
  IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA

# Build your app (optional if using compiled files)
build-job:
  stage: build
  image: maven:3.8.7-openjdk-17
  script:
    - mvn clean package -DskipTests

dockerize-job:
  stage: dockerize
  image: docker:latest
  services:
    - docker:dind
  before_script:
    - echo $CI_JOB_TOKEN | docker login -u gitlab-ci-token --password-stdin $CI_REGISTRY
  script:
    - docker build -t $IMAGE_TAG .
    - docker push $IMAGE_TAG
  only:
    - main
Code language: PHP (php)

๐Ÿง  Explanation of Important Variables

VariablePurpose
$CI_REGISTRYPoints to registry.gitlab.com
$CI_REGISTRY_IMAGEYour project-specific Docker registry path
$CI_JOB_TOKENGitLabโ€™s built-in token for authenticating CI jobs
gitlab-ci-tokenRequired user for registry auth inside CI/CD

๐Ÿ” Step 4: CI/CD Authentication

GitLab uses:

  • Username: gitlab-ci-token
  • Password: $CI_JOB_TOKEN

Docker login is done via:

echo $CI_JOB_TOKEN | docker login -u gitlab-ci-token --password-stdin $CI_REGISTRY
Code language: PHP (php)

๐Ÿ” Step 5: View Container in Registry

After pushing:

  1. Go to your GitLab project
  2. Navigate to Deploy > Container Registry
  3. You’ll see the image like: registry.gitlab.com/yourusername/myapp:abcdef1

๐Ÿ› ๏ธ Step 6: Pull and Use the Image Anywhere

From any machine (with Docker installed):

docker login registry.gitlab.com
docker pull registry.gitlab.com/yourusername/myapp:<tag>
Code language: HTML, XML (xml)

๐Ÿ” Optional: Use latest Tag and Versioning

variables:
  IMAGE_TAG: $CI_REGISTRY_IMAGE:latest
Code language: PHP (php)

Or for versioning:

IMAGE_TAG: $CI_REGISTRY_IMAGE:${CI_COMMIT_REF_NAME//\//-}
Code language: PHP (php)

โœ… Summary

StepDescription
1Write a Dockerfile
2Identify your GitLab container registry path
3Configure .gitlab-ci.yml to build & push
4Use docker login with CI_JOB_TOKEN
5View in Deploy โ†’ Container Registry

Great observation! The line:

services:
  - docker:dind
Code language: CSS (css)

is critical when using Docker inside GitLab CI/CD pipelines โ€” especially when building or pushing Docker images.


๐Ÿ” What is docker:dind?

  • **dind** stands for Docker-in-Docker.
  • docker:dind is a Docker image that runs the Docker daemon as a background service inside your CI/CD job.
  • This allows the main job container to use Docker commands (docker build, docker push, etc.), even though it’s running in an isolated environment.

๐Ÿ”ง Why is It Needed?

GitLab CI/CD runs your job steps inside a container (e.g., docker:latest), which doesn’t have the Docker daemon running by default.

So you need to add:

services:
  - docker:dind
Code language: CSS (css)

This launches a background Docker daemon, which your main container can talk to (usually via the socket on localhost or Docker host networking).


๐Ÿงช Example Use in Context

dockerize-job:
  stage: dockerize
  image: docker:latest        # Main container with Docker CLI
  services:
    - docker:dind             # Side container with Docker daemon
  script:
    - docker build -t $IMAGE_TAG .
    - docker push $IMAGE_TAG
Code language: PHP (php)
  • docker:latest โ†’ contains the Docker CLI
  • docker:dind โ†’ provides the Docker daemon to execute docker commands

๐Ÿ” Important: Secure Docker-in-Docker

For security and performance:

  • GitLab runs Docker-in-Docker in privileged mode automatically when using their Docker executor.
  • You may explicitly add (if self-hosted):
  tags:
    - docker
  variables:
    DOCKER_TLS_CERTDIR: ""
Code language: JavaScript (javascript)

This disables TLS cert enforcement (GitLab-specific tweak for dind).


โš ๏ธ Alternatives to docker:dind

  • Kaniko: A rootless, safer Docker image builder (good for Kubernetes-based runners)
  • Buildah + Podman: For more secure container builds without daemon
  • GitLab CI with remote Docker host

โœ… Summary

docker:dindExplanation
Docker-in-DockerRuns Docker daemon inside CI/CD service
Required fordocker build, docker push, etc. in pipeline
Used alongsideDocker CLI image (docker:latest)
Daemon runs inBackground, accessible to main job container

Find Trusted Cardiac Hospitals

Compare heart hospitals by city and services โ€” all in one place.

Explore Hospitals
I'm Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms. I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.

Related Posts

Should A Student Use ChatGPT To Learn DevOps Instead Of Courses?

As a student looking to learn DevOps, you might be wondering if ChatGPT is a good alternative to traditional courses. While there are some benefits to using…

Read More

Top 10 Digital Signature Software Tools in 2026: Features, Pros, Cons & Comparison

Introduction In 2026, digital transformation has reshaped the way businesses manage documents, sign agreements, and engage with clients. Digital signatures have become an essential component of this…

Read More

Top 10 Graphics Design Tools in 2026: Features, Pros, Cons & Comparison

Introduction In 2026, graphics design tools are more essential than ever for businesses, content creators, designers, and marketers across industries. From creating brand identities and advertising materials…

Read More

Top 10 Presentation Software Tools in 2026: Features, Pros, Cons & Comparison

Introduction In 2026, creating engaging and impactful presentations is more than just slides with bullet pointsโ€”itโ€™s about telling a story, conveying ideas visually, and keeping your audience…

Read More

How to Optimize Your headless CMS for Multilingual Websites

A multilingual site enables a company to internationalize itself to different audiences for better engagement and ultimately, international brand awareness. However, without the proper considerations with the…

Read More

Top 10 AI SEO Tools in 2026: Features, Pros, Cons & Comparison

Introduction In 2026, AI SEO tools have become indispensable for digital marketers, businesses, and content creators aiming to dominate search engine rankings. These tools leverage artificial intelligence…

Read More
Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
0
Would love your thoughts, please comment.x
()
x