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 update2. Install the Docker packages.
sh
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin3. Verify that the installation is successful by running the hello-world image:
sh
sudo docker run hello-worldDokcer 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-worldDocker 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 182MBDocker Run Command
sh
$ sudo docker run hello-worldDocker 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 mongodb1Compose
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-dataanother 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