-
Notifications
You must be signed in to change notification settings - Fork 46
Configuracao de ambiente virtual utilizando docker
Docker é um projeto de código aberto que automatiza a implantação de aplicativos dentro de recipientes de software, fornecendo uma camada adicional de abstração e automação de virtualização de sistemas.
"Docker é uma ferramenta que permite empacotar uma aplicação com todas as suas dependências em uma unidade padronizada para desenvolvimento de software.” [1]
Faz uma listagem das imagens em seu computador
$ docker images
Baixa uma imagem em sua máquina
$ docker pull nome_imagem
Envia a imagem para repositório remoto do Docker Hub
$ docker push nome_imagem
Cria um container utilizando uma imagem existente ou se ela não estiver adicionada a sua listagem de imagens, ele procurará no docker hub.
$ docker run -it nome_imagem
Lista os containers em execução
$ docker ps
Lista os containers em execução e os desligados
$ docker ps -a
Para o container ou inicia o containers
$ docker stop/start nome_container
Exclui container ou imagem
$ docker rm/rmi nome_container/nome_imagem
- Containers fácilmente portáveis: você pode criar uma imagem de toda a configuração e aplicativos instalados em seu container, transferir e instalar em outro host com Docker previamente instalado.
- Versionamento: Docker permite que você versione as alterações de um container de uma forma muito semelhante ao git. Permitindo portanto verificar as diferenças entre versões, commitar novas versões e voltar (rollback) versões.
- Reutilização de componentes: como citado anteriormente as imagens criadas podem ser reutilizadas, vamos supor que diversas de suas aplicações utilizem um stack com Apache e MySQL, desta maneira você instala e configura ambos e cria uma imagem base, contendo estes itens, que representará a sua instalação e configuração, desta maneira esta imagem poderá ser reutilizada em quantos forem os containers que a necessite
- Compartilhamento: o Docker Hub, citado no incício, já está povoado de milhares de containers com as mais diversas aplicações instaladas e configurações aplicadas, desta maneira você pode rápidamente criar sua aplicação com uma base desenvolvida por outra pessoa, ou ainda criar sua base e compartilhá-la.
- Pelo fato de compartilhar o kernel, seus containers não terão completo isolamento.
- Não tem garantia de recursos a nível de hardware.
- Enquanto a instalação é fácil no Linux, outros sistemas precisam de Máquina Virtual.
Recurso | Docker | Vagrant |
---|---|---|
Tipo de virtualização | VE | VM |
Garantia de recursos a nível de hardware | Não | Sim |
Tempo de inicialização | Segundos | Alguns minutos |
Nível de isolamento | Parcial | Total |
Tamanho dos sitemas virtuais | Muito Leve | Pesado |
[1] Aprendendo Docker. Disponível em https://s3.novatec.com.br/capitulos/capitulo-9788575224861.pdf
[2] Docker. Disponível em https://www.docker.com/
EPS/MDS - FGA/UnB
Métodos de Desenvolvimento de Software
Gestão de Portfólio e Projetos de Software
RUP (Rational Unified Process)
Fase Elaboração (RUP) Planejamento(PMBOK)
Fase de Construção (RUP), Execução/Monitoramente e Controle (PMBOK)
Fase Transição (RUP), Finalização (PMBOK)
Acceptance Test Driven Development (ATDD)
Integração Contínua Deploy Contínuo
Automação de Ambiente com Docker
Orquestração de Containers com Docker Compose
Automação de Ambiente com Vagrant
Deploy Contínuo na Plataforma Heroku
Integração Contínua com Travis CI
Disponibilizando a Aplicação com o Proxy Reverso Nginx
Tutorial de Instalação do Ionic
Android Integração contínua com Circle CI
Configuração de Ambiente para React Native
Tutorial Instalação Ruby on Rails
Teste Automatizado Cucumber JS
Teste Automatizado Cucumber Rails
Testando AngularJS com Jasmine
Teste Automatizado com Selenium IDE
Configurar o SonarCloud para um projeto usando Jest
Configurar o SonarCloud para um projeto usando Pytest
Configurar o SonarCloud para um projeto usando Mocha e Istambul