{"id":23317042,"url":"https://github.com/tahmid-tanzim/docker-cheat-sheet","last_synced_at":"2026-04-13T23:32:17.817Z","repository":{"id":145801909,"uuid":"56826639","full_name":"tahmid-tanzim/docker-cheat-sheet","owner":"tahmid-tanzim","description":"Docker and Kubernetes Cheat Sheet","archived":false,"fork":false,"pushed_at":"2023-09-26T18:00:13.000Z","size":397,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T03:53:21.281Z","etag":null,"topics":["docker","docker-compose","kubernetes"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tahmid-tanzim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-22T04:40:44.000Z","updated_at":"2021-10-15T09:35:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"d58c5663-c0b0-4045-b23b-c3712de36d44","html_url":"https://github.com/tahmid-tanzim/docker-cheat-sheet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tahmid-tanzim/docker-cheat-sheet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahmid-tanzim%2Fdocker-cheat-sheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahmid-tanzim%2Fdocker-cheat-sheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahmid-tanzim%2Fdocker-cheat-sheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahmid-tanzim%2Fdocker-cheat-sheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tahmid-tanzim","download_url":"https://codeload.github.com/tahmid-tanzim/docker-cheat-sheet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahmid-tanzim%2Fdocker-cheat-sheet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31775764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T20:17:16.280Z","status":"ssl_error","status_checked_at":"2026-04-13T20:17:08.216Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","kubernetes"],"created_at":"2024-12-20T16:19:00.078Z","updated_at":"2026-04-13T23:32:17.798Z","avatar_url":"https://github.com/tahmid-tanzim.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker Cheat Sheet\nCommon commands on Docker and Kubernetes.\n\n## 1. Manipulating Containers with the Docker Client\n### Container Lifecycle\n`docker run` = `docker create` + `docker start`\n### Creating and Running a Container from an Image\nCommand Format - `docker run \u003cimage-name:tag\u003e \u003ccommand\u003e`\n```shell\n$ docker pull busybox:stable\n$ docker run busybox:stable echo Hello World, Tanzim!\n$ docker run busybox:stable ping google.com\n```\n### List all running/stopped containers\n```shell\n$ docker ps\n$ docker ps -a\n```\n### Restarting stopped container\n```shell\n$ docker start -a \u003ccontainer-id OR container-name\u003e\n```\n### Remove all stopped containers\n```shell\n$ docker container prune\n```\n### Remove unused data\n```shell\n$ docker system prune\n```\n### Get logs from a container \n```shell\n$ docker logs \u003ccontainer-id OR container-name\u003e\n```\n### Stopping running containers\n```shell\n$ docker stop \u003ccontainer-id OR container-name\u003e\n$ docker kill \u003ccontainer-id OR container-name\u003e\n```\n### Executing commands in running containers\n```shell\n$ docker exec -it \u003ccontainer-id OR container-name\u003e \u003ccommand\u003e\n# Executing commands one-time without interactive shell\n$ docker exec \u003ccontainer-id OR container-name\u003e \u003ccommand\u003e\n$ docker run -it \u003cimage-name:tag\u003e \u003csh||bash||zsh\u003e\n```\n## 2. Building Custom Images Through Docker Server\n### Building custom docker image from Dockerfile\n```shell\n$ docker build -t \u003cdocker-id/image-name:tag\u003e .\n$ docker run \u003cdocker-id/image-name:tag\u003e\n```\n### Generate docker image manually\n```shell\n$ docker commit -c 'CMD[\"python\", \"manage.py\", \"runserver\"]' \u003ccontainer-id OR container-name\u003e\n```\n## 3. Making Real Projects with Docker\n### Generate docker image manually\n```shell\n$ cd web-app\n$ docker build -t oneleven/web-app:1.0.0 .\n$ docker run --name node-app -p 3000:8080 -d oneleven/web-app:1.0.0\n# Go to - http://localhost:3000\n$ docker exec -it node-app sh\n$ docker stop node-app\n```\n## 4. Docker Compose with Multiple Local Containers\n### Generate docker image manually\n```shell\n$ cd count-visits\n$ docker-compose build\n$ docker-compose up -d\n$ docker-compose down\n```\n### Container Restart Policy\n| Command        | Description                                                                                 |\n|----------------|---------------------------------------------------------------------------------------------|\n|`always`        | Always attempt to restart. Recommended for web application.                                 |\n|`on-failure`    | Only restart if the container stops with an error code. Recommended for worker application. |\n|`unless-stopped`| Always restart unless anyone forcibly stop it.                                              |\n\n## 5. Kubernetes\n### Layer of Abstraction\n1. Deployment manages ReplicaSet\n2. ReplicaSet manages Pod\n3. Pod is an abstraction of Docker container\n\n### Setup Minikube\nhttps://minikube.sigs.k8s.io/docs/start/\n\n#### Install\n```shell\ncurl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64\nsudo install minikube-darwin-amd64 /usr/local/bin/minikube\n```\n\n#### Start Cluster\n```shell\nminikube start --driver=docker\n```\n\n#### Basic kubectl commands\n* Create Deployment: `kubectl create deployment [deployment name]`\n* Edit Deployment: `kubectl edit deployment [deployment name]`\n* Delete Deployment: `kubectl delete deployment [deployment name]`\n* Status of K8s components: `kubectl get all / nodes / pod / services / replicaset / deployment`\n* Status of details pod: `kubectl get pod -o wide`\n* Service Details: `kubectl describe service [service name]`\n* Log to console: `kubectl logs [pod name]`\n* Get interactive terminal: `kubectl exec -it [pod name] -- bin/bash`\n\n```shell\nkubectl create deployment nginx-deployment --image=nginx:1.25.2-alpine\nkubectl edit deployment nginx-deployment\nkubectl delete deployment nginx-deployment\nkubectl apply -f k8s/nginx-deployment.yaml\nkubectl apply -f k8s/nginx-service.yaml\nkubectl delete -f k8s/nginx-deployment.yaml\nkubectl delete -f k8s/nginx-service.yaml\n```\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftahmid-tanzim%2Fdocker-cheat-sheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftahmid-tanzim%2Fdocker-cheat-sheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftahmid-tanzim%2Fdocker-cheat-sheet/lists"}