Você está na página 1de 37

Docker – SoluçãodeContainer

Índice
• Portainer
• ImagemPortainer
• ExecutandoPortainer
• Acessandooambiente
• Conhecendooambiente
• GerenciamentodeContainers
• CriandoumContainercomPortainer
• CriandoumServiçoPortainer
• CriandoumServiçocomo Portainer
Portainer
• OPortainer é umgerenciador decontainer, OpenSource, disponibilizado
atravésdeumainterfaceWEB.
• É executadoa partir deumaimagemdocker.
• Soluçãoparagerenciamentoderecursoscomoimagense containersDocker,
networks, volumes, Serviços, Swarm, etc.
• Suaversãoabertaé o Portainer CommunityEditionOpenSource.
• A EquipedoPortainer oferecedeformanãogratuita extensõese suporte.
EntreasextensõestemosAutenticaçãoExterna, GerenciamentodeRegistro,
entreoutros.
ImagemPortainer

• A imagemdoportainer podeser baixadausandoodocker. Podemosutilizar o


comandoabaixoparabaixar a imagem:
docker pull portainer/portainer

Emnossoexemploiremosutilizar o PlaywithDocker paranossoLAB, maspode


ser utilizandotantoemLinuxcomoWindows.
ImagemPortainer

Vamosbaixar a imagemdoportainer. Iremosposteriormenteexecuta-la através


deumcontainer docker emambienteseparada, paraconhecermosumpouco
maisdaferramenta. PosteriormentesubiremosemnossoambienteCluster
Swarm.
ExecutandooPortainer

Algumasinfomaçõessãonecessáriasparaexecutarmosumcontainer portainer,
entreelasestão:
• -d Ocontainer seráexecutadonomododaemon.
• -p Vamosatribuir umaporta paracomunicação, oportainer éexecutado
naporta9000.
• --name Especificaráonomedocontainer.
• --restart alwaysIniciaocontainer portainer automaticamente.
• -v Devemosinformar ovolumedosocket local dodocker, normalmente
localizadoem/var/run/docker.sock, e tambémondeosdadosserão
armazenadosnormalmente/data.
ExecutandooPortainer

• Sabendotodasinformaçõescitadasanteriormentevamosexecutar o
Portainer:
mkdir –p/portainer/data

docker run-d-p9000:9000--nameportainer --restart always-v


/var/run/docker.sock:/var/run/docker.sock-v /portainer/data:/data
portainer/portainer
ExecutandooPortainer
AcessandooPortainer
• Paraacessar basta clicar nolinkdaporta 9000, queserádirecionadoparao
ambientedoPortainer.
• Numprimeiromomento, serásolicitadoa senha, já quenãopassamosuma
inicialmente. Definaumasenha comosolicitado.
Configurandoo Portainer
• Ao definir a senha, seráiniciadoa sessãocomoadministrador, e opróximo
passoé informar qual o ambientedegerenciamento. Nestemomentoiremos
atuar localmente. SelecioneLocal e emseguidaconnect.
Acessandonossoambiente
• Paraacessar oambiente, basta clicar noEndPoint quefoi exibido
anteriormente. E serálevadoparatela degerenciamento.
GerenciamentocomPortainer

• No Dashboardprincipal, é exibidoumresumo, sobreosstacks, container,


imagens, volumese redes.
• Podemosver quetemosváriassessõesaosladoesquerdo, para
gerenciamentodosmesmoitenslistadosnodashboards, e maisalgumas
informações.
• No itemHost, poderemosobter informaçõessobreoHost, emtermosdeUso
deCPU, Memória, versãodeSO, Kernel entreoutrasinformações.
• NotequenãotemosinformaçõessobreoSWARMnestemomento
GerenciandoContainers

• Na sessãocontainer, poderemosgerenciar nossocontainers. Ondeé


permitidoIniciar, parar, restart, pausar, remover e adicionar novoscontainers.
• Emprimeiromomento, somenteo container portainer seráexibido.
AdicionarumnovoContainer

Vamosadicionar umnovocontainer. Paraisso selecioneAddContainer, emname


preenchacomumnome, por exemplo webserver, nonomedaimagemnginx,
altereparaManual PublishPort e adicioneumanova porta.
A portadohost será8080edocontainer 80.
EmEnable accesscontrol é possível gerenciar oacessoaocontainer.
Depoisdetudoconfigurado, basta clicar nobotãoDeploytheContainer
AdicionarumnovoContainer
AdicionarumnovoContainer

Apóscriamosteremosa imagemabaixo.
Algumasaçõespodeser tomadascomoLogs, Inspect, Statse ExecConsoleem
QuickActions. Abaixoa imagemdoStats, quenosexibeinformaçõesdousode
recursosdocontainer.
AcessandooContainer
Podemosacessar nossonovovoltandoaoPlayWithDocker, e selecionadoo link
daporta8080.
Outrasinformações

• Alémdoscontainer, podemosgerenciar nossasimagens( downloadde


imagens, criar nossaimagenseditandoo DockerFile diretamentenobrowser,
fazendouploaddoarquivooupassandoumaURL.
• EmStackspodemoseditar nobrowser similar aoDocker Compose. Damesma
formaquenasimagens, podemoseditar nobrowser, fazer uploadou
simplesmentepassar umaURL.
• Networke Volumes, faremosgerenciamentodasredese volumes.
Removendotodaconfiguração
VimosofuncionamentodoPortainer, e agoravamosremover oscontainers, e o
próprioPortainer paraexecuta-loemnossoambientedeCluster Swarm.
É possível remover o webserver tantoemlinha decomandocomdocker rmid,
comovia portainer, selecionandoocontainer emseguidaremove.
Removendotodaconfiguração

Podemosremover diretamentevia CLI noPlayWithDocker. Abaixoremovendoo


container doportainer.
NossoAmbiente

Agorairemosintroduzir oPortaineremnossoambienteClusterSwarm. Entãopara


relembrar, temos3 Hostsonde1 respondepor Manager eoutrosdoisporWorkers.
Nossoambienteestáexecutando10instanciasemcluster daimagem
francois/apache-hostname.
PreparandooManager
Devemoscriar aspastasquearmazenarãoosdadosdoPortainer, deformaque
poderemospersistir osdadosemcaso, reinicialização.

mkdir /portainer/data
CriandooserviçoPortainer

• A grandevantagemdeinicializar umcontainer utilizandoorecursodoDocker


Swarmé quepodemoscontar comalta disponibilidadedocontainer, deste
modo, supondoquetenhamosumCluster com3 nós, sendoque3 deles
atuamnomodomanager. Destemodo, casoumnóqueatuecomomanager
fiqueindisponível, oDocker Swarmiráalocar outrocontainer emumdosnós
queestánomodoManager.
• ParaqueoDocker Swarmpossa alocar umcontainer noCluster, e tal alocação
ocorraapenasemnósquesãomanagers, iremosusar umrecursode
contraint, quepermitirádefinir quesomenteManagerspodemconter o
container doportainer.
CriandooserviçoPortainer
docker servicecreate--nameportainer -p9000:9000--constraint 'node.role==
manager' --mount type=bind,src=/portainer/data,dst=/data--mount
type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock
portainer/portainer --no-auth-Hunix:///var/run/docker.sock

• A Constraint informaqueonodedeveser ummanager, paraqueexecuteo


container.
• Oparâmetro--no-auth, fazcomqueo portainer nãoexija autenticação.
• Oparâmetro–H, fazcomqueo Portainer consiga estabelecer umaconexão
TCP(via unixsocket) como host manager ondeestásendoexecutado, dessa
formaoPortainer conseguirácomunicar-se comAPI Docker semutilizar
conexõesTCP/IP.
CriandooserviçoPortainer
• Podemosvisualizar naimagemabaixoquenossocontainer Portainer está
sendoexecutadononode1, já queo mesmoé umManager e queumlink
para porta 9000foi criado.
AcessandooPortainer

• Paraaccesar ocontainerPortainer, bastaclicar nolinkdaporta9000.


AcessandooPortainer
• Podemosver naimagemanterior, queomenuaumentou, trazendoagora
informaçõesdeServiceseSwarm.
• Vamosdar umaolhadanoSwarm. ElenostrazinformaçõesdosNodes, Uso
dememória, CPU, etc.
MenuSwarm
• Podemosvisualizar quaisoscontainersemcadanodo, clicandoemGoto
Cluster visualizer.
MenuService
• No menuService, podemosvisualizar nossosserviços, bemcomoexecutar
novosserviços.
• É possível fazer escalonamentodiretamentenesta tela, clicandoemScale.
MenuService
Selecionandoqualquer serviço, umanova tela seráexibida:
• informaçõessobreo serviço
• Escalonamento
• Menudenavegaçãorápida
ExecutandooperaçõesBásicas
• VamosaomenuContainer. Podemosverificar quetemosmenoscontainer que
o total doserviço.
• Issopor queestátrazendooscontainer somentedesteHost, domanager.
ExecutandooperaçõesBásicas

• Podemosrealizar váriasoperações, comoparar, matar, reiniciar e etc.


• Acessandoumcontainer, muitasinformaçõessobremesmoseráexibida.
ExecutandooperaçõesBásicas
• Nestemomento, irátrazer informaçõessobreestecontainer. SelecioneExec
Console(QuartaimagemdoQuickAction), e cliquenobotãoConnect.
ExecutandooperaçõesBásicas
• Ao executar o connect umterminal docontainer emquestãoseráexibido, de
formaqueserápossível executar qualquer comando.
ExecutandooperaçõesBásicas
• Podemosexecutar umpingnonomeDNSdoSwarm, graçasa redeoverlay,
quecriaesseDNSinterno.
Criandoumserviço
• IremoscriarumserviçoatravésdoPortainer, veremosqueé bemfácil
a criaçãodaaplicação.
• Váemservicese selecione+Addservice. Configurecomoa imagem
abaixo:
Testandooserviço

Paratestar oserviço, basta executar umdosendereçosdosnósnaporta8081

Você também pode gostar