Você está na página 1de 11

RESUMO DE DOCKER

DOCUMENTAÇÃO:

https://docs.docker.com/

DICA:

É possível concatenar comandos utilizando duplo “E COMERCIAL (&&) ” entre os comandos.

EXIBIR TODOS OS CONTAINERS:

Containers em execução:

docker container ls ou docker ps (modo antigo)

Todos os containers mesmo sem estarem em execução:

docker container ls -a ou docker ps -a

ou

docker container ls -qa ou docker ps -a

obs:

adicionar “-q” para visualizar apenas os id’s dos containers

INSTALAR IMAGEM:

docker container run <nome-da-imagem> (ver documentação da imagem no repositório, como


por exemplo, o HUB.DOCKER.COM.

DOCKER trabalha sobre o KERNEL LINUX. No Windows ou MAC , precisamos instalar o DOCKER
DESKTOP.

INSTALAR CONTAINER MYSQL ATRAVÉS DE UMA IMAGEM:

https://hub.docker.com/_/mysql

Ex:

Sem senha:

docker container run -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql


Com senha:

docker container run -e MYSQL_ROOT_PASSWORD=senha mysql

DOCKER EM MODO INTERATIVO:

docker exec -it <id-docontainer> bash

Ex abaixo cria um container do ubuntu rodando o bash (console/shell do Linux):

docker container run -it ubuntu /bin/bash

após isso é possível utilizar todos os comandos do Linux como o exemplo abaixo:

apt update (atualiza lista de repositórios / pacotes de instalação do Linux ubuntu)

apt install curl (instala o curl)

REMOVER UM CONTAINER

docker container rm “id-do-conntainer” (apenas container que não está em uso)

docker container rm “id-do-conntainer” -f (forçando a exclusão do container mesmo em uso)

Dica para excluir todos de uma vez:

docker container rm -f (docker container ls -aq)

Limpar todas as imagens sem uso:

docker image prune

CRIAR IMAGEM DE CONTAINER:

Para criarmos uma imagem precisamos fazer uso do “DOCKERFILE”, que é um script de
comandos.

Para criarmos uma imagem, geralmente a criamos a partir de outra imagem.

1. CRIAIR ARQUIVO DOCKERFILE


2. BUILDER O SCRIPT COM ‘docker build -t “nome-imagem-a-ser-criada” -f “path-
dockerfile\Dockerfile .” ‘ (consultar documentação)

Padrão de nomenclatura de uma imagem é: nome-repositorio/nome-imagem:tag


exemplo:
abinoanmoura/api-app-venda:v2

3. PUBLICAR NO REPOSITÓRIO / DOCKER REGISTER (EX: DOCKER HUB)


docker push nome-da-imagem-criada-na-sua-maquina (consultar documentação)
obs:
a última versão sempre tem a tag “latest”
Utilizar docker image tag “imagem-com-tag” “nova-imagem-com-tag”

Talvez seja necessário logar com o Docker Hub, com docker login ou docker logout
(desconectar)

OBS:
criar arquivo .dockerignore para impedir copia de arquivos/pastas indevidos

1) FROM: inicializa o build de uma imagem a partir de uma imagem base; 2) RUN:
executa um comando; 3) LABEL: adiciona metadados à imagem; 4) CMD: define o
comando e/ou os parâmetros-padrão; 5) EXPOSE: define que o container precisa expor
a porta em questão; 6) ARG: define um argumento para ser usado no processo de
construção; 7) ENV: define variáveis de ambiente; 8) ADD: copia arquivos, diretórios
ou arquivos remotos e os adiciona ao sistema de arquivos da imagem; 9) COPY: copia
arquivos ou diretórios e os adiciona ao sistema de arquivos da imagem; 10)
ENTRYPOINT: auxilia na configuração de um container que pode ser executado como
um executável; 11) VOLUME: define volumes que devem ser definidos; 12) WORKDIR:
define o seu diretório
AUTOMATIZANDO PROCESSOS (Pipeline)

PIPELINE DE “INTEGRAÇÃO CONTÍNUA (CI)”:


- Codificação
- Commit
- Build
- Teste
- Geração do Pacote

OBS:
Etapa mais ligada ao desenvolvedor (Responsabilidade do desenvolver e pessoa da
infraestrutura).

PIPELINE DE “DEPLOY CONTÍNUO (CD)”:


- Release
- Teste
- Aceite
- Deploy em Produção

OBS:
Para início pode-se iniciar com a INTEGRAÇÃO CONTÍNUA. Começar pequeno e evoluir, fazendo uma ou
outra etapa da PIPELINE, como Build por exemplo (Responsabilidade do desenvolver e pessoa da
infraestrutura).

Uma pipeline nada mais é do que um conjunto de etapas realizadas sequencialmente (embora
possam ser executadas paralelamente), de forma que um novo passo só ocorre quando o
anterior for validado com sucesso.

A pipeline de integração contínua tem como objetivo integrar aquilo que está sendo
desenvolvido em um produto já existente. Na integração contínua, há, em sequência, um
processo de integração, o commit, o build (compilação da solução), o teste e a geração do
pacote (executável).

A pipeline de deploy contínuo, por sua vez, parte da criação de uma release, a qual é logo
submetida a um teste; depois do aceite, caso ele venha a ocorrer, o deploy em produção é
iniciado.

O conjunto formado pela pipeline de integração contínua e pela pipeline de deploy contínuo
corresponde à pipeline de CI e de CD. Automatizado, esse conjunto pode garantir
escalabilidade ao processo de desenvolvimento, confiabilidade entre as equipes e mitigação de
erros.

“Toda vez que eu quero gerar uma nova release, uma nova versão da minha aplicação, eu
preciso executar a integração contínua.”

TWELVE FACTOR APPS


Trata-se de um conjunto de doze fatores e princípios que, quando seguidos, tornam
possível garantir a criação de aplicações como serviço com grande eficiência. São usados
formatos declarativos para a configuração de ambientes e para facilitar a automação,
garantindo maior portabilidade entre os ambientes. Com o Twelve Factor Apps, é possível
haver compatibilidade com plataformas de nuvem sem depender de servidores ou da
administração de sistemas.
Um dos seus objetivos é minimizar o impacto da migração entre ambientes de
desenvolvimento e de produção, além de que a aplicação é escalável sem que seja preciso se
preocupar com alterações significativas para garantir a escalabilidade

O foco do Twelve Factor Apps é pensar em software como serviço. Então, quanto
menos você se preocupa com elementos de infraestrutura e operação, melhor fica.

Você também pode gostar