Aprendendo básico de docker
Lukas Pol
Posted on May 29, 2020
Sumário:
Docker: O que é isso?
Segundo nosso amigo Wikipedia..
Docker é um software contêiner da empresa Docker, Inc, que fornece uma camada de abstração e automação para virtualização de sistema operacional no Windows e no Linux, usando isolamento de recurso do núcleo do Linux como cgroups e espaços de nomes do núcleo, e um sistema de arquivos com recursos de união, como OverlayFS criando contêineres independentes para executar dentro de uma única instância do sistema operacional, evitando a sobrecarga de manter máquinas virtuais (VM).
Bom, entendeu? Se sim, prossiga para outro tópico, caso não continue conosco. :D
Vamos imaginar aqueles navios gigantes que transportam containeirs, então esse navio é o Docker, e se você prestar atenção no logo do Docker é um baleia que está carregando uns containers. Basicamente é isso, vamos ver por que usar que ficará mais claro o que é.
Mas por que usar Docker?
Imagino que você tem seus projetos, na empresa que trabalhe ou projetos pessoais ou até como freelancer.
Se você usa um mesmo SGBD(sistema de gerenciamento de banco de dados) para todos esses projetos, por exemplo o MySQL, imagino que ele deve ter muitos banco de dados e estes muitas tabelas, e podendo te confundir as vezes. Agora imagine você ter 10 projetos e 5 SGBD diferentes, ou instalados em sua máquina, não seria muito legal.
Nessa posição ou você remove a inicialização automatica, quando o PC liga, ou vai desligando-os ao ligar a máquina. Mas se você usa o SGBD em um docker, não precisa se preocupar em ficar ligando e desligando os SGBD.
Basta criarmos um container com um SGBD de preferência e usarmos quando precisar ou melhor ainda, criar um container com SGBD para cada projeto que tiver.
Ou, até mesmo na linguagem que queria, ou um sistema operacional para testes, para ficar "dando" comandos aleatórios para aprender, e não acabar fazendo besteira em sua própria máquina.
Ah, Lukas é só eu usar uma Máquina Virtual(VM), e está tudo certo.
Será?? Vamos ver o que é um container.
O que são containeres
Bom agora nossa missão é entender o por que um container não é uma VM, e é mais vantagoso.
Como disse antes, podemos usar linguagens e SGBD diferentes em containers, imagine isso em duas máquinas virtuais, uma a linguagem de programação e outra SGBD?
Bem provável que haveria uma sobrecarga muito alta no seu pc, a não ser que tenha uma máquina top
, mas vamos combinar, nem todos tem uma dessas máquinas. Então ai entra o Docker e seus containers para facilitar nossas vidas.
O container compartilha do seu próprio Sistema Operacional, se tem um Linux ou outro SO, os containers usaram o seu SO, logo menos sobrecarga em sua pobre máquina.
Mas como montar esses containeres, então entram as imagens?
O que são imagens
Imagens é o que irá formar um containeres, como estamos mais acostumado com VM, vamos imagina que queremos uma máquina ubuntu, para digitar alguns comandos no terminal. Vamos ver o quanto rápido é.
1º Realizar cadastro no DockerHub
2º Instalar na máquina
Não entrarei nesse tópico, mas posso fazer um. Mas só pesquisar na internet, é bem fácil a instalação. Continue aqui e depois instale.
3º Baixando a imagem ubuntu
docker pull ubuntu
output
Using default tag: latest
latest: Pulling from library/ubuntu
d51af753c3d3: Pull complete
fc878cd0a91c: Pull complete
6154df8ff988: Pull complete
fee5db0ff82f: Pull complete
Digest: sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
4º Executando o ubuntu
docker run -it ubuntu
-i e -t é a combinação para ter acesso ao shell do container
root@f287473a2f95:/#
Pronto! Temos um máquina ubuntu. Caso queira ter um SGBD, ou uma liguangem de programação, basta entrar no DockerHub e pesquisar a image que desejar.
Para sair do container digite: exit
Este repositorio tem alguns projetos começados com docker. Caso não tenha sua Stack, só enviar um PR. :)
Posted on May 29, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.