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.
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
- Desabilite o firewalld (por algum motivo ele impossibilita a resolução de DNS dentro dos containers)
systemctl disable firewalld
- Adicione o repositório do docker
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
- Instale o docker com --nobest para compatibilidade com CentOS 8
dnf install --nobest docker-ce
- Habilite o docker no sistema
systemctl start docker
systemctl enable docker
- 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 ~]#
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 ~]#
Xero no suvaco!!!
Top comments (0)