Skip to content

Docker

Install Docker

1. Using Docker's apt repository.

sh
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

2. Install the Docker packages.

sh
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3. Verify that the installation is successful by running the hello-world image:

sh
sudo docker run hello-world

Dokcer Official Images

Docker Hub

Access the world's largest library of container Images Official images available from applications like Redis, Mongo, Postgres etc. Docker hosts one of the biggest Docker Registry, called "Docker Hub"

Docker Pull Command

sh
docker pull hello-world

Docker List Images

$ sudo docker images
REPOSITORY      TAG       IMAGE ID       CREATED         SIZE
mysql           latest    fa262c3a6564   3 months ago    797MB
hello-world     latest    74cc54e27dc4   3 months ago    10.1kB
mongo           latest    6fe2220a3a52   4 months ago    881MB
mongo-express   latest    870141b735e7   13 months ago   182MB

Docker Run Command

sh
$ sudo docker run hello-world

Docker Running Images

$ sudo docker ps
CONTAINER ID   IMAGE           COMMAND                  CREATED        STATUS        PORTS                                             NAMES
01fe2a13b7da   mongo-express   "/sbin/tini -- /dock…"   2 months ago   Up 11 hours   0.0.0.0:8081->8081/tcp, [::]:8081->8081/tcp       mongo-express
e1d0e9d58214   mongo           "docker-entrypoint.s…"   2 months ago   Up 11 hours   0.0.0.0:27017->27017/tcp, [::]:27017->27017/tcp   mongodb1

Compose

mongo-docker-compose.yaml

yaml
services
	nomgodb:
		image: mongo
		ports:
			- 27107:27107

		volumes:
			- db-data:/var/lib/mysql/data
	mongo-express:
		image: mongo-express
		….

volumes:
	db-data

another compose example

yaml
services:
	my-app:
		build: .
		ports:
			- 3000:3000
		environment:
			MONGO_DB_USERNAME: ${MONGO_ADMIN_USER}
			MONGO_DB_PWD: ${MONGO_ADMIN_PASS}

	mongodb:
		image: mongo
		ports:
			- 27017:27017
		environment:
			MONGO_INITDB_ROOT_USERNAME: ${MONGO_ADMIN_USER}
			MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ADMIN_PASS}

	mongo-express:
		image: mongo-express
		ports:
			- 8081:8081
		environment:
			ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGO_ADMIN_USER}
			ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGO_ADMIN_PASS}
			ME_CONFIG_MONGODB_SERVER: mongodb
		depends_on:
			- “mongodb”

			
********
const DB_USER = process.env.MONGO_DB_USER
const DB_PASS = process.env.MONGO_DB_PWA