{"id":25019652,"url":"https://github.com/djeada/docker-notes","last_synced_at":"2025-06-30T17:34:27.462Z","repository":{"id":191051147,"uuid":"359907351","full_name":"djeada/Docker-Notes","owner":"djeada","description":"A comprehensive collection of notes on Docker, designed to help you understand and leverage Docker for containerization and DevOps practices. This repository covers a wide range of topics, from basic concepts to advanced techniques, providing valuable insights and practical examples for both beginners and experienced users.","archived":false,"fork":false,"pushed_at":"2025-05-04T19:43:58.000Z","size":92,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-04T20:32:35.054Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/djeada.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":"2021-04-20T18:02:00.000Z","updated_at":"2025-05-04T19:44:02.000Z","dependencies_parsed_at":"2024-02-03T19:28:00.583Z","dependency_job_id":"bf51106b-4f62-4087-a466-b0d5acc9e104","html_url":"https://github.com/djeada/Docker-Notes","commit_stats":null,"previous_names":["djeada/docker-notes"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/djeada/Docker-Notes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FDocker-Notes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FDocker-Notes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FDocker-Notes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FDocker-Notes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djeada","download_url":"https://codeload.github.com/djeada/Docker-Notes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FDocker-Notes/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262819395,"owners_count":23369466,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-02-05T11:51:21.237Z","updated_at":"2025-06-30T17:34:27.440Z","avatar_url":"https://github.com/djeada.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker\nA comprehensive collection of notes on Docker, designed to help you understand and leverage Docker for containerization and DevOps practices. This repository covers a wide range of topics, from basic concepts to advanced techniques, providing valuable insights and practical examples for both beginners and experienced users.\n\n## Notes\n\n| Topic                     | Description                                                                   | Notes                                                                                                     |\n| --------------------------| ------------------------------------------------------------------------------| --------------------------------------------------------------------------------------------------------- |\n| Docker Intro               | An introduction to the basic concepts and components of Docker.                | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/notes/01_intro.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e               |\n| Installation               | Step-by-step guide on how to install Docker on different platforms.           | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/notes/02_installation.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e        |\n| Basic Commands             | Overview of fundamental commands for Docker usage.                            | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/notes/03_basic_commands.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e        |\n| Dockerfile                 | Instructions and best practices for creating Docker images using Dockerfile.   | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/notes/04_docker_file.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e            |\n| Networking                 | Basics of networking within Docker and connecting containers.                  | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/notes/05_networking.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e            |\n| Security                   | Measures and best practices to secure Docker containers and images.            | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/notes/06_security.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e               |\n| Swarm                      | Introduction to Docker Swarm, a native clustering and orchestration tool.      | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/notes/07_swarm.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e                  |\n\n## Projects\n\n| Project           | Description                                                      | Link                                                                                                   |\n| ----------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |\n| MySQL             | A relational database management system (RDBMS) based on SQL.     | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/projects/mysql/README.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e |\n| PostgreSQL        | An advanced open-source relational database management system.    | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/projects/postgresql/README.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e |\n| MongoDB           | A NoSQL database platform for scalable and high-performance needs. | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/projects/mongodb/README.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e |\n| Flask             | A lightweight web framework in Python for building web applications. | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/projects/flask/README.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e |\n| NodeJS            | A runtime environment for executing JavaScript outside of a browser. | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/projects/nodejs/README.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e |\n| VirtualBox Networking | Configuration and management of network settings in VirtualBox. | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/projects/virtualbox_networking/README.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e\u003c/a\u003e |\n\n## Scripts\n\n| Script Name                     | Description                                                                                           | Link                                                                                              |\n| ------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |\n| docker_image_updater.py         | Script to update Docker images.                                                                       | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/scripts/docker_image_updater.py\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/python.png\" height=\"50\" /\u003e\u003c/a\u003e |\n| docker_compose_generator.py     | Generates a `docker-compose` file based on specified parameters.                                      | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/scripts/docker_compose_generator.py\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/python.png\" height=\"50\" /\u003e\u003c/a\u003e |\n| image_cleaner.py                | Script to clean up old or unused Docker images.                                                       | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/scripts/image_cleaner.py\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/python.png\" height=\"50\" /\u003e\u003c/a\u003e |\n| container_runner.py             | Handles the launching of individual Docker containers.                                                | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/scripts/container_runner.py\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/python.png\" height=\"50\" /\u003e\u003c/a\u003e |\n| batch_container_runner.py       | Script designed to run multiple Docker containers in batches.                                          | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/scripts/batch_container_runner.py\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/python.png\" height=\"50\" /\u003e\u003c/a\u003e |\n| container_resource_monitor.py   | Monitors and reports on resource usage (like CPU, memory) of running containers.                       | \u003ca href=\"https://github.com/djeada/Docker-Notes/blob/main/scripts/container_resource_monitor.py\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/python.png\" height=\"50\" /\u003e\u003c/a\u003e |\n\n\n## Assessing Your Docker Proficiency\n\nEvaluate your Docker understanding and skills using the following benchmarks:\n\n### Fundamental Concepts\n\n1. **Containerization vs. Virtualization**:\n   - Distinguish between containers and traditional virtual machines.\n   - Recognize how containers optimize performance by sharing the host system's kernel, whereas VMs require their own OS instance.\n\n2. **Linux Kernel Components**:\n   - Understand critical Linux kernel components that power containerization, like cgroups and namespaces.\n\n### Practical Knowledge\n\n3. **Utilizing Public Docker Images**:\n   - Pull and execute containers from images on Docker Hub or other public repositories.\n\n4. **Crafting Dockerfiles**:\n   - Write Dockerfiles that adhere to best practices:\n     - Optimize layer ordering for caching.\n     - Leverage multi-stage builds to reduce image size.\n     - Ensure the usage of secure base images and up-to-date dependencies.\n\n5. **Docker Compose Mastery**:\n   - Create `docker-compose` configurations to manage multiple containerized applications, easing local development and testing setups.\n\n6. **Docker Networking**:\n   - Understand Docker's various networking modes, such as bridge, host, and overlay.\n   - Set up communication between containers and define how external systems access them.\n\n### Advanced Practices\n\n7. **Docker Security**:\n   - Enforce Docker security best practices:\n     - Operate containers as non-root users.\n     - Opt for secure and lightweight base images.\n     - Consistently scan images for potential vulnerabilities.\n     - Use read-only filesystems when suitable.\n\n8. **Alternative Containerization Tools**:\n   - Get acquainted with other container tools beyond Docker:\n     - `buildkit`: A modern approach to building container images.\n     - `buildah`: Constructs OCI-compatible container images.\n     - `kaniko`: Constructs container images from a `Dockerfile`, suitable for container or Kubernetes environments.\n\n## Contributing\n\nYour contributions are valued! For significant updates or changes, initiate an issue for discussion.\n\nEnsure that you adapt tests to reflect your changes where necessary.\n\n## License\n[MIT License](https://choosealicense.com/licenses/mit/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjeada%2Fdocker-notes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjeada%2Fdocker-notes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjeada%2Fdocker-notes/lists"}