Docker Cheat Sheet

Docker is a containerization platform that packages applications and dependencies into lightweight, portable containers.

Basics

docker --version

Check installed Docker version.

docker info

Show system-wide information about Docker.

Images

docker images

List all downloaded images.

docker pull nginx

Download image from Docker Hub.

docker rmi nginx

Remove an image from your system.

Containers

docker ps

Show running containers.

docker ps -a

Show all containers (running + stopped).

docker run -d -p 8080:80 nginx

Run Nginx in background on port 8080.

docker stop <container_id>

Stop a running container.

docker rm <container_id>

Remove a stopped container.

Volumes

docker volume ls

List all volumes.

docker volume create myvol

Create a new volume named "myvol".

docker run -v myvol:/data nginx

Run container and mount volume to /data.

Networks

docker network ls

List all Docker networks.

docker network create mynet

Create a new network named "mynet".

docker run -d --network=mynet nginx

Run container inside "mynet" network.

Docker Compose

docker compose up -d

Start services in background from compose file.

docker compose down

Stop and remove all services.

docker compose ps

List containers managed by compose.

Sample Dockerfiles

ASP.NET Core Web API
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 5000

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["MyApi.csproj", "./"]
RUN dotnet restore "MyApi.csproj"
COPY . .
RUN dotnet build "MyApi.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "MyApi.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyApi.dll"]
        

Dockerfile for an ASP.NET Core Web API project.

Angular App
# Stage 1 - Build Angular App
FROM node:18 AS build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build --prod

# Stage 2 - Nginx server
FROM nginx:alpine
COPY --from=build /app/dist/my-angular-app /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
        

Dockerfile for building and serving Angular with Nginx.

SQL Server
FROM mcr.microsoft.com/mssql/server:2022-latest
ENV ACCEPT_EULA=Y
ENV SA_PASSWORD=YourStrong!Passw0rd
EXPOSE 1433
CMD ["/opt/mssql/bin/sqlservr"]
        

Dockerfile to run SQL Server container.