Container

Primeiros passos instalar container docker

Originalmente o Docker surgiu em 2013 quando Solomon Hykes, fundador e CEO da dotCloud, realizou uma palestra na โ€˜Python Developers Conferenceโ€™ em Santa Clara, Califรณrnia.
Primeiros passos com Docker

A IA estรก revolucionando a educaรงรฃo.ย 

Aprenda de um jeito diferente com o Jedai.ai

A 4Linux รฉ especialista em Linux, Cloud e DevOps.

Jรก executamos +1.500 projetos com software open source. Venha fazer o seu projeto com a 4Linux.

Se vocรช chegou atรฉ aqui, jรก deve ter lido o artigo โ€˜O que รฉ dockerโ€™ e se ainda nรฃo o fez, recomendamos a leitura antes de prosseguir.

Aprenda a criar seu primeiro container Docker

Apesar do termo container ter se popularizado nos dias de hoje com a ferramenta Docker, o conceito jรก era empregado com utilizaรงรตes de containers Linux e muitos casos de containers Java (JVM) principalmente para aplicaรงรตes web, como utilizado nas plataformas JBoss e Wildfly.

Surgimento do Docker

Originalmente o Docker surgiu em 2013 quando Solomon Hykes, fundador e CEO da dotCloud, realizou uma palestra na โ€˜Python Developers Conferenceโ€™ em Santa Clara, Califรณrnia. Poucas semanas apรณs isso rapidamente o projeto se tornou open source e atravรฉs do Github teve contribuiรงรตes de centenas de desenvolvedores que ajudaram a melhorar e disseminar a tecnologia que foi disruptiva para o mercado de TI mudando a forma de como as aplicaรงรตes sรฃo disponibilizadas, dando praticidade, portabilidade e agilidade.

Benefรญcios do Docker

Inicialmente รฉ muito comum que o conceito do Docker seja confundido com o de mรกquinas virtuais devido ร  cultura e metodologia de trabalho utilizada durante anos, porรฉm o Docker รฉ muito mais que um provisionamento virtual e com proposta bem diferente. Enquanto uma mรกquina virtual รฉ feita para perdurar durante um bom tempo, mesmo que a fluidez de provisionamento seja rรกpido e que se utilize de plataformas em cloud para criar e deletar mรกquinas, o container Docker jรก nasce com o propรณsito de ser substituรญvel em um certo momento, em um novo deploy ou atรฉ mesmo em minutos apรณs a execuรงรฃo de uma รบnica tarefa.

Justamente essa volatilidade do container o faz eficaz, pois com o Docker vocรช nรฃo precisa se preocupar com bibliotecas do sistema operacional, drivers, partiรงรตes e etc, o Docker possui um repositรณrio de imagens pรบblicas em cloud, o DockerHub, em que รฉ possรญvel criar um container quase que instantaneamente atravรฉs do comando โ€œdocker runโ€ e dizendo qual imagem Docker este container deve utilizar para realizar o setup.

Existem diversas imagens enxutas desde sistemas operacionais contento somente o mรญnimo necessรกrio para uma aplicaรงรฃo ser executada, atรฉ imagens com serviรงos jรก instalados para serem utilizados como o caso da imagem โ€œhttpd:2.4โ€ que traz um sistema operacional Linux Alpine com o serviรงo Apache HTTP instalado.

Este tipo de funcionalidade traz fluidez e agilidade para os processos de deploy, porรฉm deve ser levado em consideraรงรฃo que aplicaรงรตes que serรฃo aplicadas em containers jรก devem ser estruturadas com o conceito โ€œstatelessโ€, que nรฃo guarda o estado da aplicaรงรฃo e nem dados dentro do container, pois caso contrรกrio inviabilizaria uma das principais vantagens da utilizaรงรฃo do Docker que รฉ a versatilidade para de se encerrar o container em caso de problemas ou novas atualizaรงรตes na aplicaรงรฃo.

Transforme-se em um profissional em Containers requisitado pelo mercado.

Conheรงa nossa Assinatura de Cursos Containers:

Composta por
6 cursos

รcone de um relรณgio

+180 horas de conteรบdo

รcone de laptop

1 ano de acesso ร  plataforma

รcone de foguete

Acesso imediato aos cursos

Com 2 principais vantagens:

  1. รšnica plataforma de curso com cursos prรกticos e aula ao vivo.
  2. รšnica escola que tambรฉm implementa projeto trazendo a experiรชncia para sala de aula.

Exemplos de implantaรงรฃo do Docker

O primeiro passo para a utilizaรงรฃo รฉ realizarmos a instalaรงรฃo do Docker, para a demonstraรงรฃo serรฃo utilizados exemplos para o sistema operacional Linux (Ubuntu/Debian).

Prรฉ-Requisitos:

Antes de iniciar a instalaรงรฃo, certifique-se de ter permissรฃo de super usuรกrio, serรก necessรกrio adicionar o repositรณrio do Docker em seu sistema operacional para realizar o download do pacote, para isso execute a sequรชncia de comandos a seguir:

  1. Atualizando da lista de pacotes do repositรณrio atual:
$ sudo apt-get update
  1. Instalando pacotes para permitir o apt utilizar repositรณrios sobre HTTPS:
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
  1. Instalando a chave criptogrรกfica do repositรณrio:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. Adicionando o repositรณrio do Docker ร  lista de repositรณrios do sistema operacional:
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

Instalaรงรฃo:

Agora sim podemos iniciar a instalaรงรฃo do Docker, siga os passos:

  1. Atualizando da lista de pacotes do repositรณrio atual:
$ sudo apt-get update
  1. Instalando a รบltima versรฃo do Docker e seus componentes:
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

Build da imagem:

Nesta etapa faremos o build de uma aplicaรงรฃo para gerar uma imagem de container que serรก executada posteriormente para simularmos um deploy. Para isso utilizaremos um componente do Docker chamado Dockerfile, um arquivo de configuraรงรฃo que irรก nos auxiliar no build, contendo informaรงรตes como: imagem de referรชncia, arquivos e serem copiados e pacotes adicionais para dependรชncias da aplicaรงรฃo para a construรงรฃo da imagem do container.

Siga os passos abaixo:

  1. Crie um diretรณrio qualquer para utilizarmos na construรงรฃo da imagem, apรณs isso entre neste diretรณrio como no exemplo:
mkdir docker-lab ; cd docker-lab
  1. Agora vamos criar um arquivo com nome โ€œDockerfileโ€ e inserir automaticamente o seu conteรบdo, para isso digite na linha de comando o que estรก abaixo:
cat << EOF > Dockerfile
# Imagem de referรชncia Python
FROM python:3.7-slim

# Selecionando o diretรณrio do container para a execuรงรฃo dos comandos a seguir
WORKDIR /app

# Copiando o conteรบdo do diretรณrio que foi criado, para dentro do diretรณrio do container
COPY . /app

# Instalando pacotes adicionais informados no arquivo requisitos.txt
RUN pip install --trusted-host pypi.python.org -r requisitos.txt

# Habilitando a porta 80 do container para receber conexรตes externas
EXPOSE 80

# Definindo variรกvel de ambiente
ENV NAME World

# Executando aplicaรงรฃo Python apรณs inicializaรงรฃo do container
CMD ["python", "app.py"]
EOF
  1. Agora no mesmo diretรณrio que estamos, crie um arquivo chamado โ€œrequisitos.txtโ€ com o conteรบdo “Flask” que serรก utilizado para informar os pacotes adicionais, como no exemplo:
echo Flask > requisitos.txt

4. Criaremos agora o arquivo de nossa aplicaรงรฃo Python, assim continuando no mesmo diretรณrio criaremos um arquivo com o nome de app.py e vamos inserir novamente ao mesmo tempo o seu conteรบdo, assim digite na linha de comando o que estรก abaixo:

cat << EOF > app.py
from flask import Flask
import os
import socket

app = Flask(__name__)

@app.route("/")
def hello():
html = "<h3>Hello {name}!</h3>" \
"<b>Hostname:</b> {hostname}<br/>"
return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname())

if __name__ == "__main__":
app.run(host='0.0.0.0', port=80)
EOF

Atenรงรฃo para a indentaรงรฃo do cรณdigo!

  1. Tudo pronto para realizarmos a construรงรฃo de nossa imagem. No comando a seguir iremos utilizar o parรขmetro โ€œ-tโ€ ou โ€œโ€“tagโ€ que servirรก para identificarmos a nossa imagem com um nome, apelido ou atรฉ mesmo versรฃo. Caso a versรฃo de build nรฃo seja informada neste parรขmetro o Docker assumirรก por padrรฃo que รฉ a รบltima (latest). Ao final do comando tambรฉm deveremos informar o contexto do Dockerfile, em nosso caso o mesmo diretรณrio em que estamos trabalhando, representado no Linux pelo caracter โ€œ.โ€, veja:
sudo docker build --tag=testpy .

Para verificar as imagens criadas no Docker vocรช pode executar o comando:

sudo docker image ls

Deploy do container:

Agora veremos como iniciar a aplicaรงรฃo construรญda sendo executada dentro de um container Docker, atravรฉs da imagem gerada no build:

  1. Para iniciar um container Docker utilizaremos o comando abaixo com os parรขmetros โ€œ-dโ€ para o container ser executado em background e tambรฉm o โ€œ-pโ€ que indicaremos qual porta de acesso de nosso computador direcionarรก as requisiรงรตes para a porta que configuramos no container. Ttambรฉm serรก necessรกrio informar o nome da imagem conforme a tag utilizada anteriormente:
docker run -d -p 80:80 testpy

Tente acessar no seu browser a url http://localhost/ vocรช deverรก visualizar algo parecido com a imagem abaixo:

  1. Para finalizar o container em execuรงรฃo digite o comando abaixo adicionando no final o hostname que foi informado no browser. Esse hostname รฉ o ID do container criado e tambรฉm pode ser identificado usando o comando โ€œdocker container lsโ€:
docker container ls
docker rm -f โ€œidโ€

Alรฉm do bรกsico

O que vimos atรฉ aqui foi somente a parte bรกsica inicial do uso do Docker, seu potencial pode ser explorado ainda mais. Hรก outras formas de realizar o build e o deploy do container utilizando outros componentes do Docker como o โ€œdocker-composeโ€ que permite vocรช criar uma estrutura de provisionamento mais complexa, pois com ele รฉ possรญvel informar atรฉ quantas replicas deste mesmo container vocรช irรก querer executar de uma sรณ vez entre outras coisas.
Outro mรณdulo do Docker รฉ o Swarm, responsรกvel por criar, orquestrar e balancear todo o seu cluster de containers, garantindo alta disponibilidade e confiabilidade.

Tambรฉm hรก outras tecnologias que podemos utilizar para complementar e falicitar o uso e execuรงรฃo de nossos containers, jรก รฉ muito comum realizarmos o provisionamento e/ou consumirmos containers Docker como serviรงo em plataformas cloud. Hรก outras ferramentas que fornecem maior facilidade de gerenciamento e provisionamento do Docker como o Kubernets e atรฉ interface grรกfica de monitoramento como o Openshift.

Teleragm Logo
Whatsapp Logo

Vocรช ganhou totalmente gratuito um curso da categoria Starter da 4Linux! Sรฃo 9 opรงรตes de cursos para vocรช escolher!

Cursos com 20h de conteรบdo prรกtico e certificado de conclusรฃo para vocรช dar uma upgrade na sua carreira.

Preencha o formulรกrio ao lado e vocรช receberรก em atรฉ 24hr o e-mail com os dados de acesso ao conteรบdo.