DEV Community

Cover image for Entendendo Docker: o que é, como funciona e por que usar
Thiago Marques
Thiago Marques

Posted on

Entendendo Docker: o que é, como funciona e por que usar


Repost do original: https://www.darede.com.br/entendendo-docker/ da Darede

O Docker é uma das melhores plataformas para o deploy de uma aplicação. Para entender sua funcionalidade, confira esse artigo em nosso blog!

A evolução do deploy de uma aplicação passou por vários processos. Inicialmente tínhamos um servidor físico para cada serviço, ou seja, havia um servidor, um sistema operacional e uma aplicação. Isso gera um aumento em manutenção de hardware, de atualização de patches de segurança ou upgrade da aplicação. Com a virtualização criamos uma camada de abstração do hardware, ou seja, podemos em UM hardware ter vários SOs, e consequentemente várias aplicações. Contudo a necessidade de gerenciamento do SO ainda existe (e ainda existe o SO do próprio hypervisor). Por fim chegamos ao container, ele eleva a abstração para o SO. Isto é, conseguimos abstrair o hardware e o sistema operacional, e deixar o container apenas para cuidar da aplicação. Nesse artigo vamos entender sobre o Docker.

Conteinerização vs Virtualização

Instalação (centos8)

Instalaremos o docker, e depois realizaremos o pull de uma imagem do tac_plus para servir como servidor de autenticação para nossos equipamentos.

  • Remova todas as versões de docker que possam estar habilitadas:
dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine 
Enter fullscreen mode Exit fullscreen mode
  • Desabilite o firewalld (por algum motivo ele impossibilita a resolução de DNS dentro dos containers)
systemctl disable firewalld
Enter fullscreen mode Exit fullscreen mode
  • Adicione o repositório do docker
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Enter fullscreen mode Exit fullscreen mode
  • Instale o docker com --nobest para compatibilidade com CentOS 8
dnf install --nobest docker-ce
Enter fullscreen mode Exit fullscreen mode
  • Habilite o docker no sistema

systemctl start docker
systemctl enable docker
Enter fullscreen mode Exit fullscreen mode
  • Teste o docker validando a versão
[root@devops ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.11
 API version:       1.39
 Go version:        go1.13.10
 Git commit:        42e35e61f3
 Built:             Mon Jun  1 09:13:48 2020
 OS/Arch:           linux/amd64
 Experimental:      false


Server: Docker Engine - Community
 Engine:
  Version:          18.09.1
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       4c52b90
  Built:            Wed Jan  9 19:06:30 2019
  OS/Arch:          linux/amd64
  Experimental:     false
[root@devops ~]#
Enter fullscreen mode Exit fullscreen mode

Comandos básicos

Com o Docker instalado vamos agora falar de alguns comandos básicos:

  • docker ps -a: Mostra todos os containers, tanto os em execução quanto os parados.
  • docker run: Executa um container com uma imagem especifica (no nosso caso o Hello-Worl
  • docker start|stop: Inicia um (ou mais) containeres parados, ou para um (ou mais) containers ativos.
  • docker rm: Remove um (ou mais) container. (voce pega a lista com o docker ps -a)
  • docker rmi: Remove um (ou mais) imagens. (voce pega a lista com o docker images)
  • docker container prune: Remove todos os containers que estão parados.
  • docker images: Mostra todas as images que voce ja fez o pull
  • docker exec -it: Roda um comando dentro do container (só o exec), e com a opção "-it" voce aloca um tty dentro do container, ou seja, é a opção para ter acesso a console do container. exemplo: docker exec -it hello-wold bash
  • docker network ls: Lista todas as redes criadas no Docker
  • docker run: Executa de fato (ou roda) o docker.

Por fim para testar, vamos subir um docker com o famoso hello-word:

[root@devops ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9
Status: Downloaded newer image for hello-world:latest


Hello from Docker!
This message shows that your installation appears to be working correctly.


To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.


To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash


Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/


For more examples and ideas, visit:
 https://docs.docker.com/get-started/


[root@devops ~]#
Enter fullscreen mode Exit fullscreen mode

Xero no suvaco!!!

Top comments (0)