https://github.com/gdfreitasdev/docker-sandbox
Repositório destinado à conceitos e exemplos com Docker
https://github.com/gdfreitasdev/docker-sandbox
docker docker-compose docker-container docker-image docker-swarm docker-volumes dockerfile
Last synced: about 1 month ago
JSON representation
Repositório destinado à conceitos e exemplos com Docker
- Host: GitHub
- URL: https://github.com/gdfreitasdev/docker-sandbox
- Owner: gdfreitasdev
- License: mit
- Created: 2018-08-05T16:04:42.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-11T02:53:06.000Z (almost 3 years ago)
- Last Synced: 2025-08-07T01:12:21.053Z (2 months ago)
- Topics: docker, docker-compose, docker-container, docker-image, docker-swarm, docker-volumes, dockerfile
- Homepage:
- Size: 48.6 MB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 26
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Docker
Repositório destinado à conceitos e práticas com Docker
## O que é Docker
É uma plataforma que permite a criação e execução de aplicações de maneira rápida e prática através de pacotes de software em unidades padronizadas chamadas de contêineres os quais possuem tudo que o software precisa para ser executado, incluindo bibliotecas, ferramentas de sistema, código e runtime. O docker permite implantar, escalar e mover rapidamente aplicações em qualquer ambiente, otimizando a utilização de recursos.
### História
O docker foi lançado em 2013 como um projeto open-source por uma empresa chamada **.cloud (dot cloud)** que era uma empresa de hospedagem que atualmente não existe mais. Após um ano do lançamento desta tecnologia, ela se tornou tão grande que eles fecharam a antiga empresa e abriram uma nova chamada **Docker Inc**.
### Quais as vantagens do Docker em relação às tradicionais Máquinas Virtuais
- Rapidez, agilidade _"Docker is all about speed"_
- Em vários sentidos: para desenvolver, construir, testar, lançar, atualizar e recuperar
- O consumo de recursos é muito menor com o Docker
- Herda o Kernel e entre outros recursos da máquina host
- Supondo que um a inicialização de um container leva 1seg, a mesma operação em uma máquina virtual com o sistema operacional inteiro, levaria cerca de 1min;## Características
- Não é um sistema de virtualização tradicional (VM - Virtual Machine)
- É uma engine de administração de containers (ambiente/serviço isolado da maquina host)
- É baseado em uma tecnologia de serviços LXC (Linux Containers);
- Open Source e escrito em Go (linguagem)
- Host e container compartilham o Kernel (menor consumo, otimização, etc)
- Empacota software com vários níveis de isolamento (memória, cpu, rede, etc)## Docker Editions
- Docker CE (Community Edition): grátis para uso
- Docker EE (Enterprise Edition): pago
- Recomendado para grandes empresas, possui suporte 24/7, diretivas de seguranças em imagens, certificado em plataformas específicas, entre outros diversos produtos extras.### Versões
- `Stable` versão estável, testada, etc.
- `Edge` permite download antecipado, lançamentos mensais, a cada 4 meses esta versão vira um versão estável.### Instalação
Três principais tipos instalações: Direct, Mac/Windows e Cloud
- Linux [(diferente por distribuição)](https://store.docker.com/)
- CLI `curl -sSL https://get.docker.com/ | sh`
- _Não é recomendado instalar via gerenciador de pacotes da distribuição_- [Mac](https://docs.docker.com/docker-for-mac/)
- É recomendado que evite utilizar gerenciador de pacotes como o _brew_
- [Download](https://hub.docker.com/editions/community/docker-ce-desktop-mac)- [Windows](https://hub.docker.com/editions/community/docker-ce-desktop-windows)
- ... ou Docker Toolbox para versões diferente da 10 Pro/Enterprise
- [Docker Docs - Docker for Windows](https://docs.docker.com/docker-for-windows/)
- [Docker Docs - Docker for Windows: FAQ](https://docs.docker.com/docker-for-windows/faqs/)- Cloud: AWS/Azure/Google, versões do docker, com características/aplicações específicas da empresa que está distribuindo.
## Conceitos
Nas documentações abaixo é abordado conceitos, características, exemplos de uso, etc.
A versão do Docker e configurações da Engine podem ser consultadas `docker version && docker info`
Os comandos do Docker podem ser consultados através de `docker --help`.
Uma curiosidade é que com o passar dos anos houve uma melhora na organização dos comandos disponíveis. Pode-se perceber ao executar o comando de `--help` as divisões.
- **Commands** (formato antigo) `docker (options)`
- **Management Commands** (formato novo) `docker (options)`Como o docker possui uma política de retrocompatibilidade, os antigos não deixarão de funcionar, mas novos comandos não estarão disponíveis no antigo formato.
### Básicos
- [Containers](containers.md)
- [Network](network.md)
- [Images](images.md)
- [Volumes](volumes.md)
- [Compose](compose.md)### Orquestração
- [Swarm](swarm.md)
### Outros
- [Using Docker with Node.js](nodejs.md)
## Referências
### Docker Docs
- [Docker Docs - Get Started](https://docs.docker.com/get-started/)
- [Docker Docs - QEMU Emulator in Docker Desktop for Mac/Windows](https://docs.docker.com/docker-for-mac/multi-arch/)### Repositórios
- [Docker @ GitHub](https://github.com/docker)
- [Moby @ GitHub](https://github.com/moby/moby)
- [Docker Mastery @ GitHub](https://github.com/bretfisher/udemy-docker-mastery)
- [Docker Library - Official Images @ GitHub](https://github.com/docker-library/official-images/tree/master/library)
- [Docker Mastery by BretFisher @ GitHub](https://github.com/bretfisher/udemy-docker-mastery)
- [Docker Mastery for Node.js by BretFisher @ GitHub](https://github.com/bretfisher/docker-mastery-for-nodejs)___
- [Node.js Docker Good Defaults - bretfisher @ Github](https://github.com/bretfisher/node-docker-good-defaults)
- [PHP Docker Good Defaults - bretfisher @ Github](https://github.com/bretfisher/php-docker-good-defaults)___
- [Awesome Docker @ Github](https://github.com/veggiemonk/awesome-docker)
- [Docker for the Virtualization Admin - EBook](https://github.com/mikegcoleman/docker101/blob/master/Docker_eBook_Jan_2017.pdf)### Artigos e Videos
- [Play with Docker](https://labs.play-with-docker.com/)
- [Training - Play with Docker](http://training.play-with-docker.com/)
- [The Future of Docker Swarm - Brett Fisher](https://www.bretfisher.com/the-future-of-docker-swarm/)
- [Cloud Native Landscape](https://landscape.cncf.io/)
- [Article About the DCA (Docker Certificated Associate](https://www.bretfisher.com/docker-certified-associate/)
- [Docker Extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=PeterJausovec.vscode-docker)
- [Everything You Thought You Already Knew About Orchestration @ Youtube](https://www.youtube.com/watch?v=Qsv-q8WbIZY)
- [YAML - Quick Reference Card](https://yaml.org/refcard.html)
- [Docker 1.12 Swarm Mode Deep Dive Part 1: Topology](https://www.youtube.com/watch?v=dooPhkXT9yI)
- [Docker 1.12 Swarm Mode Deep Dive Part 2: Orchestration](https://www.youtube.com/watch?v=_F6PSP-qhdA)
- [Heart of the SwarmKit: Topology Management (slides)](https://speakerdeck.com/aluzzardi/heart-of-the-swarmkit-topology-management)
- [Heart of the SwarmKit: Store, Topology & Object Model (YouTube)](https://www.youtube.com/watch?v=EmePhjGnCXY)
- [Raft Consensus Visualization (Our Swarm DB and how it stays in sync across nodes)](http://thesecretlivesofdata.com/raft/)
- [Docker Swarm Firewall Ports](https://www.bretfisher.com/docker-swarm-firewall-ports/)
- [Bret Fisher Docker and DevOps @ Podcast](https://www.bretfisher.com/podcast/)
- [Bret Fisher Docker and DevOps @ Youtube](https://www.youtube.com/channel/UC0NErq0RhP51iXx64ZmyVfg)
- [Alpine Linux](https://alpinelinux.org/)
- [CVE Database](https://cve.mitre.org/)
- [Blog on CVE Scanners and their effectiveness on Alpine images](https://kubedex.com/follow-up-container-scanning-comparison/)
- [Three places to control different docker IP subnet settings](https://serverfault.com/questions/916941/configuring-docker-to-not-use-the-172-17-0-0-range/942176#942176)
- [Alex Ellis' Raspberry Pi blog posts](https://blog.alexellis.io/tag/raspberry-pi/)
- [Using TLS for Localhost](https://letsencrypt.orgcertificates-for-localhost/)
- [Traefik Proxy](https://traefik.io/)
- [Docker and ARM announcement](https://www.theregister.co.uk/2019/04/24/docker_arm_collaberation/)
- [AWS ARM A1 instances](https://aws.amazon.com/pt/blogs/aws/new-ec2-instances-a1-powered-by-arm-based-aws-graviton-processors/)
- [QEMU](https://www.qemu.org/)
- [ENTRYPOINT vs CMD](http://www.johnzaccone.io/entrypoint-vs-cmd-back-to-basics/)
- [image2docker demo](https://www.youtube.com/watch?v=YVfiK72Il5A)### Cursos sobre Docker
- [Docker Mastery: with K8s & Swarm from a Docker Captain](https://www.udemy.com/docker-mastery)
- [Docker for Node.js Projects From a Docker Captain](https://www.udemy.com/docker-mastery-for-nodejs)
- [Docker: Ferramenta essencial para Desenvolvedores](https://www.udemy.com/curso-docker/)