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

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

Introduction Construction Management Software (CMS) has become indispensable in 2026 for efficiently handling various aspects of construction projects, ranging from budgeting, scheduling, resource allocation, project tracking, to…

Read More

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

Introduction In the fast-paced world of 2026, managing personal finances efficiently is more crucial than ever. With rising inflation, economic uncertainties, and the complexity of multiple financial…

Read More

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

Introduction In 2026, AI pricing optimization tools have become indispensable for businesses navigating the complexities of dynamic markets. These tools leverage artificial intelligence, machine learning, and real-time…

Read More

Top 10 On-premise Backup Tools in 2026: Features, Pros, Cons & Comparison

Introduction In 2026, on-premise backup tools are still essential for businesses that need complete control over their data security and disaster recovery plans. Unlike cloud-based solutions, on-premise…

Read More

Top 10 Server Backup Tools in 2026: Features, Pros, Cons & Comparison

Introduction Server backup tools are essential for businesses in 2026 to ensure the safety, security, and reliability of their data. With the growing threats of cyberattacks, hardware…

Read More

Top 10 Backup & Recovery Tools in 2026: Features, Pros, Cons & Comparison

Introduction In todayโ€™s digital world, data is the backbone of virtually every business operation. As the amount of critical data grows, so does the need for robust…

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