Dockerfile:
FROM node:20
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 5000
CMD ["npm", "run", "dev"]
Bind Mount, Dev Container & Ts Node Dev
Cheat Sheet
Bind Mound Syntax For
For Git Bash
docker run -p 5000:5000 --name ts-container -w //app -v ts-docker-logs://app/logs -v
"//$(pwd)"://app/ -v //app/node_modules --rm ts-docker
docker run -p 5000:5000 --name ts-container -w //app -v ts-docker-logs://app/logs -v
"${PWD}://app" -v //app/node_modules --rm ts-docker
For CMD
docker run -p 5000:5000 --name ts-container -w //app -v ts-docker-logs://app/logs -v
"%cd%"://app/ -v //app/node_modules --rm ts-docker
ts-node-dev command for Docker Container
ts-node-dev --respawn --transpile-only --poll src/server.ts
      1.   First Open A .devcontainer folder in the root of the project
      2.   Inside the .devcontainer folder open a file named devcontainer.json and paste the following code
      3.   Change the json name, container names and file directories according to your project
"name": "ts-container",
"image": "node:20",
"workspaceFolder": "/app",
"mounts": [
    // Bind mount for your local project
    "source=/c/Projects/next-level/Docker/docker-with-typescipt-backend,target=/app,type=bind",
    // Named volume for logs (similar to: -v ts-docker-logs://app/logs)
    "source=ts-docker-logs,target=/app/logs,type=volume",
    // Anonymous volume for node_modules (similar to: -v //app/node_modules)
    "target=/app/node_modules,type=volume"
],
"runArgs": [
    "--name",
    "ts-container",
    "-p",
    "5000:5000",
    "--rm" // Automatically remove the container after exiting VS Code
],
"postCreateCommand": "npm install"
Docker command Cheat sheet
https://find-saminravi99.notion.site/Docker-Cheat-Sheet-10dc48b8ac8c80b79f73ece2abfc6841
Docker Cheat Sheet
Getting Started with Docker
Check Docker Installation:
docker --version
      1.
Basic Commands
Pull an Image from Docker Hub:
docker pull <image-name>
Example:
docker pull ubuntu
   1.
List Available Images:
docker images
   2.
Run a Container:
docker run -it <image-name>
Example:
docker run -it ubuntu
   3.
Run a Container in Detached Mode:
docker run -d <image-name>
   4.
Stop a Running Container:
docker stop <container-id>
   5.
Start a Stopped Container:
docker start <container-id>
   6.
Remove a Stopped Container:
docker rm <container-id>
   7.
Remove an Image:
docker rmi <image-name>
    8.
Managing Containers
List Running Containers:
docker ps
    1.
List All Containers (including stopped):
docker ps -a
    2.
View Container Logs:
docker logs <container-id>
    3.
Execute a Command in a Running Container:
docker exec -it <container-id> <command>
Example:
docker exec -it <container-id> bash
    4.
Inspect a Container:
docker inspect <container-id>
    5.
Networking
List Docker Networks:
docker network ls
   1.
Create a New Network:
docker network create <network-name>
   2.
Connect a Container to a Network:
docker network connect <network-name> <container-id>
   3.
Disconnect a Container from a Network:
docker network disconnect <network-name> <container-id>
   4.
Volumes and Data Management
Create a Volume:
docker volume create <volume-name>
   1.
List Volumes:
docker volume ls
   2.
Remove a Volume:
docker volume rm <volume-name>
    3.
Mount a Volume to a Container:
docker run -v <volume-name>:<container-path> <image-name>
    4.
Dockerfile and Building Images
Create a Dockerfile: Basic structure:
FROM <base-image>
MAINTAINER <your-name>
COPY <source> <destination>
RUN <command>
CMD ["<executable>"]
    1.
Build an Image from a Dockerfile:
docker build -t <image-name>:<tag> .
Example:
docker build -t myapp:latest .
    2.
List Built Images:
docker images
    3.
Advanced Commands
Tag an Image:
docker tag <image-id> <new-image-name>:<tag>
    1.
Push an Image to Docker Hub:
docker push <image-name>:<tag>
    2.
Save an Image to a Tar File:
docker save -o <path-to-output-file> <image-name>
    3.
Load an Image from a Tar File:
docker load -i <path-to-input-file>
    4.
    5.   Docker Compose:
Start Services:
docker-compose up
Stop Services:
docker-compose down
Scale Services:
docker-compose up --scale <service-name>=<number>
    6.
View Running Docker Compose Services:
docker-compose ps
   7.
Useful Docker Commands
Remove All Stopped Containers:
docker container prune
   1.
Remove Unused Images:
docker image prune
   2.
Remove All Unused Data (containers, networks, images):
docker system prune
   3.
Get Docker System Information:
docker info
   4.