Buscar

teorico

Prévia do material em texto

Tópicos Especiais em 
Redes de Computadores
Material Teórico
Responsável pelo Conteúdo:
Prof. Dr. Vagner da Silva
Revisão Textual:
Prof.ª Me. Natalia Conti
Containers – Docker
• Docker;
• O que é um Container?
• O que são Imagens?
• Arquitetura Docker.
• Conhecer a tecnologia docker aprofundando-se nos conceitos para esclarecer as diferen-
ças entre ela e o uso de máquina virtual, bem como demonstrar como é feita sua instala-
ção e uso;
• Estabelecer os principais conceitos de um docker para que seja possível dar continuidade 
ao estudo dessa tecnologia considerada emergente. 
OBJETIVOS DE APRENDIZADO
Containers – Docker
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem 
aproveitado e haja maior aplicabilidade na sua 
formação acadêmica e atuação profissional, siga 
algumas recomendações básicas:
Assim:
Organize seus estudos de maneira que passem a fazer parte 
da sua rotina. Por exemplo, você poderá determinar um dia e 
horário fixos como seu “momento do estudo”;
Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma 
alimentação saudável pode proporcionar melhor aproveitamento do estudo;
No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos 
e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você tam-
bém encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua 
interpretação e auxiliarão no pleno entendimento dos temas abordados;
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o 
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e de 
aprendizagem.
Organize seus estudos de maneira que passem a fazer parte 
Mantenha o foco! 
Evite se distrair com 
as redes sociais.
Mantenha o foco! 
Evite se distrair com 
as redes sociais.
Determine um 
horário fixo 
para estudar.
Aproveite as 
indicações 
de Material 
Complementar.
Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma 
Não se esqueça 
de se alimentar 
e de se manter 
hidratado.
Aproveite as 
Conserve seu 
material e local de 
estudos sempre 
organizados.
Procure manter 
contato com seus 
colegas e tutores 
para trocar ideias! 
Isso amplia a 
aprendizagem.
Seja original! 
Nunca plagie 
trabalhos.
UNIDADE Containers – Docker
Docker
O docker é uma tecnologia de virtualização, porém não é uma virtualização 
como conhecemos das plataformas de forma tradicional. Ao virtualizar um siste-
ma operacional utilizando um aplicativo como o VMWare, VirtualBox ou outros 
middlewares, permitimos que cada sistema operacional instalado nessa máquina 
virtual utilize o hardware de forma isolada.
Ao instalar um sistema operacional Linux como máquina virtual, proporciona-
mos que ele tenha a utilização do hardware única e exclusivamente durante um de-
terminado tempo. Nessa virtualização ele considera que tem um processador, uma 
memória e os dispositivos de entrada e saída somente para ele. Portanto, ele tem 
suas próprias bibliotecas, seus arquivos binários e seu próprio sistema de arquivo 
para executar as aplicações de cada máquina virtualizada.
Quanto mais virtualizamos mais desacoplados estaremos, isso significa que tere-
mos mais flexibilidade no uso dos recursos físicos da máquina, como elasticidade no 
uso de memória, processamento e armazenamento. Essa característica já é obtida 
pela utilização da máquina virtual.
O docker não trabalha com esse tipo de virtualização a qual estamos acostuma-
dos a ver e usar, ele é uma engine que administra os containers criados e, além 
de fornecer todos os recursos que a virtualização tradicional oferece, utiliza menos 
recursos que a virtualização de plataformas. Para entender qual o objetivo de um 
docker devemos primeiro entender o que é um container.
Um container é um processo isolado e a partir dele podem-se executar as aplica-
ções de forma isolada. Ele é associado a um sistema de arquivo isolado e precisa de 
vários recursos da máquina host, ou seja, da máquina na qual esse container está 
sendo executado. Ele não é executado totalmente independente da máquina host 
como é o caso da virtualização de plataformas.
É considerado um host a máquina com um sistema operacional para gerenciá-la, ou seja, 
esse sistema operacional tem todos os recursos para fazer o gerenciamento da máquina. 
Ex: computador com um sistema operacional Windows instalado.
Ex
pl
or
Um container compartilha algumas bibliotecas da máquina host, ele usa alguns 
binários e bibliotecas que já estão na máquina e essa característica faz com que um 
container necessite de pouco espaço de memória. Além disso, ele inicializa mais rápido 
se considerarmos uma máquina virtual que tem suas próprias bibliotecas e binários.
What’s LXC? Disponível em: http://bit.ly/2M7DjdD
Ex
pl
or
8
9
O docker utiliza as características do serviço LXC (Linux Containers), isso sig-
nifica que os containers deverão ser baseados na plataforma Linux. Considerando 
que o container usa alguns recursos da máquina host, então eles deverão ser exe-
cutados em sistemas operacionais Linux. Sendo assim, pode-se executar container 
baseados em Debian, Ubuntu ou outras distribuições em que o kernel é Linux.
É possível ter controle sobre a quantidade de memória ou CPU que um container 
possa utilizar; ele tem um endereço IP próprio e permite acesso utilizando-se desse 
endereço ou de uma porta, além de ser possível definir a quantidade de tráfego de 
pacotes que ele poderá usar.
Pelo isolamento que oferece os processos criados só poderão atuar dentro desse 
container; no entanto é possível criar vários containers e estabelecer comunicação 
entre eles.
Server
Máquina Física
Sistema 
Operacional
Sistema 
Operacional
DockerHypervisorApp1 App2 App3
VM1
App
+
SO
App
+
SO
App
+
SO
App App App
VM2 VM3
Sistema 
Operacional
Máquinas Virtuais Containers
Server Server
Figura 1 – Host, Máquina virtual e Docker
Fonte: Adaptado de VITALINO, 2016
Conforme pode ser observado na figura 1, temos um exemplo de máquina nativa 
ou host (Máquina Física), uma máquina virtualizada com alguns sistemas operacio-
nais e, por último, um container.
Pela figura 1 é possível identificar que o modelo de máquina virtual possibilita 
que tenhamos vários sistemas operacionais sendo executados sobre a camada de 
virtualização (Hypervisor). No modelo de containers temos o docker sendo execu-
tado sobre o sistema operacional Linux.
No modelo de containers não temos a camada hypervisor e sim a engine que vai 
gerenciar os containers criados. Outra mudança de características entre container 
e Máquina virtual está na camada mais acima, perceba que há vários sistemas 
operacionais no modelo de máquina virtual; essas máquinas são inicializadas isola-
damente cada qual utilizando uma quantidade de memória para gerenciar os pro-
cessos de cada aplicação que estiver sendo executada.
9
UNIDADE Containers – Docker
Ao utilizar máquina virtual, todo sistema operacional inicializado de forma 
virtualizado deverá fazer toda a sua carga contendo o seu núcleo para gerencia-
mento de todos os recursos físicos da máquina. Para cada sistema operacional 
virtualizado, ao ser inicializado, deverá fazer toda sua carga, isso exige bastante 
memória principal e cada sistema operacional criará processos para as aplicações 
que foram inicializadas.
No modelo container não há vários sistemas operacionais e sim a aplicação que 
é executada sobre um container, podendo cada uma delas ser executada em um 
container diferente, cada uma com seu sistema de arquivo isolado compartilhando 
o mesmo núcleo da máquina host. Você pode ter o host baseado na distribuição 
Linux Red Hat e iniciar um container baseado na distribuição Linux Ubuntu.
Perceba que você terá um container baseado na distribuição que escolheu para 
quesuas aplicações (container) sejam executadas, no entanto ela compartilhará o 
núcleo (bibliotecas e binários) da máquina host com outros containers criados.
Se torna muito mais rápido inicializar processos para serem executados nos 
containers em relação a ter que inicializar o sistema operacional inteiro como acon-
tece nas máquinas virtuais.
A tecnologia docker não é considerada nova, antigamente era possível utilizá-la, 
no entanto sua manipulação era muito complexa por não existirem ferramentas que 
facilitassem o seu uso. Atualmente já existem ferramentas que ajudam o administra-
dor no uso dessa tecnologia, há uma interface de linha de comando (CLI) para que 
se possa comunicar com o docker daemon. Outra forma está no uso de uma API 
REST para que o administrador possa manipular e consumir os serviços do docker.
Há dois principais conceitos vinculados ao docker, um deles refere-se ao container 
e o outro refere-se à imagem, vamos ver cada um deles.
O que é um Container?
Segundo Vitalino, 2016 container é, em português claro, o agrupamento de 
uma aplicação com suas dependências, que compartilham o kernel do sistema 
operacional host, ou seja, da máquina (seja ela virtual ou física) onde está rodando. 
Ele tem processos segregados, tem um sistema de arquivo isolado e tem um sistema 
de arquivo criado a partir de uma imagem.
Os processos criados em um container podem criar processos filhos, e cada pro-
cesso pode ser criado por uma aplicação que pode ser um banco de dados, um servi-
dor HTTP ou outras aplicações que sejam de necessidade do usuário. É interessante 
criar um container por aplicação, assim você terá cada um deles isolado mantendo 
uma organização maior e podendo escalar cada um deles de forma independente.
Dentro desse ambiente isolado que sua aplicação executa, todas as suas depen-
dências como biblioteca e binários estarão nesse container. Essa característica nos 
10
11
dá um processo isolado com o seu sistema de arquivo também isolado usando o 
mesmo núcleo do host.
Segundo Vitalino, 2016 o propósito da máquina virtual é emular um novo siste-
ma operacional dentro do sistema operacional do host. Já o propósito do container 
é emular somente as aplicações e suas dependências e torná-las portáteis.
O que são Imagens?
Uma imagem é um modelo de sistema de arquivo criado para criar um container. 
Conforme já descrito, um container tem processos que são usados para executar 
uma aplicação e eles estão na memória principal. 
A imagem é um arquivo que contém a descrição sobre um modelo de sistema de 
arquivo somente leitura para execução de uma aplicação que pode ser um servidor 
apache ou qualquer outra aplicação necessária para o usuário.
Um dos itens interessantes é a possibilidade de usar imagens criadas por outras 
pessoas ao redor do mundo. Você pode criar e armazenar sua imagem na internet, 
o principal repositório chama-se Docker Hub. Ele é um repositório público e pri-
vado que disponibiliza diversos recursos. Além de armazenar, você pode usar os 
containers que foram disponibilizados, isso agiliza muito a configuração e o uso de 
determinadas aplicações.
Repositório de containers, disponível em: https://dockr.ly/2KAeFzm
Ex
pl
or
A figura 2 apresenta a página em que são apresentados alguns containers.
Figura 2 – Página docker hub
Fonte: Reprodução
Como pode ser observado na figura 2, há containers que podem ser baixados, 
embora na figura 2 tenham apenas duas imagens, há outras várias delas que po-
dem ser exploradas e baixadas.
11
UNIDADE Containers – Docker
Arquitetura Docker
O Docker utiliza uma arquitetura cliente/servidor, o cliente do docker solicita ao 
docker daemon uma ação que pode construir, executar ou distribuir os containers. 
A figura 3 apresenta a arquitetura.
Figura 3 – Arquitetura Docker
Fonte: Adaptado de Wikimedia Commons
O cliente e o docker daemon podem ser executados no mesmo sistema ope-
racional ou então o cliente pode conectar a um docker daemon usando linha de 
comando (CLI), API REST, sockets ou uma interface de rede.
Como pode ser observado na figura 3 uma das possibilidades de comunicação 
pode ser feita pelo cliente ao docker daemon que solicitará a imagem ao registry 
na internet. Nesse caso é feito o download dessa imagem para a máquina host e a 
partir dessa imagem será construído o container.
Outra forma para a comunicação com o docker daemon é a utilização de fer-
ramentas gráficas como o kitematic, ele é open source e por ser uma ferramenta 
gráfica ele facilita o processo de instalação e configuração do Docker, além de for-
necer algumas interfaces intuitivas para execução e criação de containers.
Ferramenta gráfica, disponível em: http://bit.ly/2Kvcjle
Ex
pl
or
Instalação
A instalação do docker pode ser feita em sistema operacional Windows, Mac 
ou Linux. Para fazer a instalação no Windows é necessário baixar o instalador 
disponível no site, no entanto essa instalação somente irá funcionar se o sistema 
12
13
operacional for o Windows 10 com a versão “Windows subsytem for Linux”, essa 
versão possibilita executar programas nativos do sistema Linux no Windows sem a 
necessidade de instalar o Linux.
Caso seu sistema operacional não tenha essa atualização, você poderá fazê-la ou 
então instalar o docker em uma máquina virtual Linux ou em um host Linux, ou 
seja, em uma máquina que o sistema operacional seja o Linux.
Nessa simulação iremos instalar o docker em um sistema operacional Linux 
instalado como máquina virtual. Usaremos a distribuição Ubuntu 19.04 instalada 
como máquina virtual no aplicativo VirtualBox. 
A instalação do docker será feita usando o terminal para digitação dos comandos. 
O primeiro comando que será executado fará a atualização do Linux. A figura 4 
apresenta este comando.
Figura 4 – Atualização do Linux
Vamos executar os comandos da figura 5 para que sejam instalados alguns pacotes.
Figura 5 – Instalação de pacotes
O próximo passo está em adicionar o repositório do docker utilizando o coman-
do da figura 6.
Figura 6 – Adicionando repositório do Docker
Vamos adicionar ao apt-repository o caminho para baixar atualizações e paco-
tes do docker. A figura 7 apresenta o comando.
Figura 7 – Adicionando caminho para atualizações
Na sequência faremos novamente uma atualização executando o comando apre-
sentado na figura 8.
Figura 8 – Executando atualização
13
UNIDADE Containers – Docker
Agora sim vamos executar o comando para instalar o docker, a figura 9 apre-
senta o comando para instalação.
Figura 9 – Executando a instalação do Docker
Para verificar se o docker está instalado você pode executar o comando “docker 
--help” e será apresentado os comandos utilizados para manipulação do docker.
Vamos executar o comando da figura 10 para verificar se tudo foi instalado de 
forma correta. Ao aplicar o comando será apresentada uma resposta descrevendo 
que a instalação foi bem-sucedida.
Conforme pode ser observado na figura 10 foram executados alguns passos 
como: o cliente enviou uma solicitação ao docker daemon; o docker daemon bai-
xou o “hello-world” do docker hub; o docker daemon criou um novo container e; 
o docker daemon enviou uma resposta para o cliente. 
Figura 10 – Hello World
Detalhes da instalação no Ubuntu 19.04, disponível em: http://bit.ly/2Ky2HpX
Ex
pl
or
O comando “run” tem vinculado a ele quatro operações, a primeira refere-se a 
baixar a imagem do repositório (registry) para a máquina; criar o container; inicia-
lizar o container e fazer a execução dele.
Vamos fazer mais alguns testes utilizando o comando “run”, vamos baixar duas 
imagens do bash, a primeira refere-se ao bash da distribuição Ubuntu e a segunda 
ao bash da distribuição debian. Primeiramente execute o comando apresentado na 
figura 11, esse comando irá criar um container a partir de uma imagem relacionada 
ao bash Ubuntu.
Figura 11 – Container para o bash Ubuntu
14
15
Agora utilizando o comando da figura 12 verifique a versão do bash da imagem 
que foi baixada. A opção«-i» é utilizada para o modo interativo e a «-t» faz você 
entrar no modo terminal do container, observe que o prompt é alterado após esse 
comando, indicando que você está usando o bash do container criado.
Figura 12 – Versão para o bash Ubuntu
Observe que a imagem do bash Ubuntu baixada tem a versão 4.4.19. Vamos 
agora baixar e executar a imagem do bash debian, para isso execute o comando 
apresentado na figura 13.
Figura 13 – Versão para o bash debian
Na figura 13 pode-se observar a versão do bash debian 4.4.12 e logo após o 
comando “bash –version” a versão 5.0.3(1) que está sendo executada no host.
Resumindo, nos testes executados anteriormente baixamos duas imagens do 
registry, uma Ubuntu e outra Debian, verificamos a versão do bash das duas 
imagens e ainda verificamos a versão do bash do host, cada uma apresentando 
uma versão diferente.
Esse teste que foi feito conceitua o que foi descrito como container, pois ao bai-
xarmos as imagens do bash utilizando o comando “run” foi criado um container 
para o bash Ubuntu e um container para o bash debian, cada qual com sua versão.
Ao executar novamente o mesmo comando “run”, a resposta é instantânea, pois 
não será mais necessário baixar a imagem, ela já estará na cache local. É essa a ca-
racterística que faz do container uma solução mais leve que utiliza menos recursos 
que a máquina virtual.
Os comandos utilizados para manipulação do docker têm semelhanças aos utili-
zados no terminal bash do host, vamos fazer uma listagem dos containers que foram 
manipulados até agora, para isso execute o comando apresentado na figura 14.
15
UNIDADE Containers – Docker
Figura 14 – Processos relacionados aos containers
O comando “ps” apresenta os processos ativos, a opção “-a” apresenta os pro-
cessos que foram baixados. Sem a opção “-a” não aparecerão os processos, pois os 
processos relacionados aos containers foram executados e encerrados.
Um ponto importante que deve ser esclarecido sobre o comando “run” é que 
cada vez que ele é executado um novo container é criado mesmo que seja execu-
tado o mesmo comando. Veja o exemplo a seguir, na figura 15 há a execução do 
comando “run” com a opção “-t” para ele entrar no terminal do container criado.
Figura 15 – Exemplo do comando “run” container f1710da9ea11
Observe na figura 15 que o cursor foi alterado indicando que estamos no container 
criado. Nesse container foi criado o arquivo com o nome “arq”, ele é apresentado 
como primeiro item após a execução do comando “ls -s”.
Vamos executar o mesmo comando “run” utilizado anteriormente, a figura 16 
apresenta a execução do comando.
Figura 16 – Exemplo do comando “run” container c403d7155edb
Observe que executando o mesmo comando o arquivo criado “arq” não apa-
rece nesse container após a execução do comando “ls -l”, indicando que são 
containers diferentes.
16
17
Como você deve ter observado é importante definir um nome para o container 
para que este tenha nomes sugestivos e possa ser reaproveitado. A figura 16 apre-
senta o comando.
Figura 17 – Criação de um container defi nindo um nome
Observe na figura 16 que aplicando o comando pela primeira vez não é apre-
sentado erro e o cursor se altera indicando que estamos dentro do container 
criado. Ao sair do container e tentar criar outro com o mesmo nome há uma 
mensagem de erro retornando que não é possível criar, pois já tem um container 
com o nome escolhido.
Você deve estar se perguntando: “Como faço então para reutilizar um 
container?”. É exatamente isso que iremos fazer, já criamos um container com o 
nome “bashdebian” e vamos iniciá-lo. A figura 17 apresenta o comando.
Figura 18 – Iniciando o container
Como pode ser observado na figura 17, além de iniciar o container “bashdebian” 
foi criado um arquivo chamado “arquivo_debian.txt” e ao listar os arquivos e dire-
tórios com o comando “ls” ele é o primeiro da lista. Saia do container conforme 
comando apresentado na figura 18.
Figura 19 – Iniciando o container
Observe que ao sair do container e executar o comando novamente você con-
segue entrar nele e ao listar pode-se ver o arquivo criado.
Cada container criado, conforme conceito já definido, tem seu isolamento tanto 
em relação ao núcleo do sistema operacional como também de outros containers, 
embora ainda use recursos do núcleo do host.
Em muitos casos os containers devem se comunicar. Imagine que você inicie um 
banco de dados em um container e em outro você inicie um cliente para consumir os 
recursos desse banco de dados. Os containers devem oferecer formas de se comunicar.
O isolamento que os containers oferecem devem ser controlados, ou seja, deve 
ser possível o acesso a serviços que estão sendo executados em outros containers. 
Vamos avaliar como pode ser feito esse compartilhamento, para isso vamos baixar 
17
UNIDADE Containers – Docker
um servidor http conhecido como nginx. A figura 19 apresenta o comando para 
baixar a imagem.
Figura 20 – Container executando um servidor http
O comando apresentado na figura 19 define que o servidor nginx será exposto 
para fora do container pela porta 8080, ou seja, o servidor http que foi inicializado 
em container será acessado por clientes externos ao container pela porta 8080 e a 
porta 80 é a porta na qual nginx será inicializado internamente, por padrão ele já é 
inicializado nessa porta. Após a execução do comando o servidor será inicializado.
Abra outro terminal para fazer um teste e execute o comando da figura 20.
Figura 21 – Verificando informações do servidor nginx
Conforme pode ser observado na figura 20, as informações do ngnix são apresen-
tadas com as tags HTML. Outra forma de verificar essas informações é pela “url” de 
um browser, a figura 21 apresenta o endereço da “url” e a resposta do servidor http.
Figura 22 – Verificando informações do servidor nginx pelo browser
Já que temos um processo sendo executado (o do servidor HTTP) vamos aplicar 
o comando para verificar os processos que estão ativos. A figura 22 apresenta o 
comando e a resposta.
18
19
Figura 23 – listando os processos ativos
Observe que as informações do processo são apresentadas após a execução do 
comando. Como pode ter notado, ao executar o comando para ativar o servidor http 
tivemos que abrir outro terminal para executar os comandos, pois o terminal ficou 
“preso”. Há outra forma de executar o comando para ativar o servidor ou qualquer 
outro serviço em background e continuar usando o terminal normalmente sem ter 
que abrir outro. A figura 23 apresenta o comando e o resultado da execução dele.
Figura 24 – Executando servidor http em background
Conforme pode ser observado na figura 23 a opção “-d” define que a execução 
do servidor será na forma de daemon, ou seja, em background. Para esse container 
foi também vinculado um nome “serv_http”. Perceba também pela figura 23 que o 
prompt aparece normalmente para digitação dos comandos.
Para parar o serviço basta executar o comando “stop” associado ao nome do 
serviço que deseja parar. A figura 24 apresenta o comando.
Figura 25 – Parando serviço
Ao executar o comando “stop”, conforme apresentado na figura 24, o serviço irá pa-
rar. Ao listar os processos que estão ativos, verá que não será listado nenhum processo.
O docker oferece uma série de comandos que foram reformatados para melhor 
definir a execução de comandos containers, de imagens e volume. Essa organiza-
ção atual de aplicação de comandos, embora seja mais longa, define bem cada um 
deles. A figura 25 apresenta os comandos para o help de “volume” e “image”.
Figura 26 – Comando help para volumes e imagens
19
UNIDADE Containers – Docker
Vimos que utilizando o comando “run” as imagens são baixadas antes de serem 
inicializadas e executadas. Ao baixar as imagens elas ficam na cache, para verificar 
quais imagens foram baixadas utilize o comando da figura 26.
Figura 27 – Listando as imagens
Há outros comandos aplicados às imagens que podem ser usados para manipu-
lá-las. A tabela 1 apresenta alguns deles.Tabela 1
Comando Descrição
docker image ls Usado para listar as imagens que estão na cache.
docker image inspect Apresenta informações da imagem semelhante ao formato apresentado no JSON.
docker image rm Usado para remover imagens que estão inseridas na cache.
docker image build Usado para gerar uma imagem do container.
docker image push Usado para publicar a imagem no repositório local ou externo.
docker image pull Usado para baixar a imagem diretamente do repository. Esse comando apenas carrega a imagem para a cache, ele não inicializa e nem executa.
Como observado nos exemplos descritos anteriormente, os containers executam 
processos referente a uma aplicação e tem o isolamento necessário para manter a 
segurança. Ao se criar um container para uso em servidores, eles devem estar em 
background com todas as definições já feitas em relação a compartilhamento e uso 
de recursos.
Vários outros recursos estão disponíveis para manipulação de containers ima-
gens e volumes e devem ser pesquisados de acordo com a necessidade.
20
21
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
 Leitura
Como Instalar e Configurar o Docker no Ubuntu 18.04
Veja como instalar docker linux ubuntu 18.04.
http://bit.ly/2Mact4z
O que é Docker?
No link abaixo você tem mais detalhes sobre Docker. 
https://red.ht/2MacxkP
Porque apostar em docker e containers
Veja uma opinião sobre o assunto.
http://bit.ly/2KMBS1t
Implante contêineres do Docker
Passo a passo para usar o container da Amazon.
https://amzn.to/2KsQe6E
21
UNIDADE Containers – Docker
Referências
NEMETH, E.; SNYDER, G.; HEIN, T.; FORESTI, N. Manual completo do Linux: 
guia do administrador. 2. ed.-. São Paulo: Pearson Education do Brasil, 2007.
VITALINO, J. F. N.; CASTRO M. A. N. Descomplicando o Docker. Brasport Li-
vros e multimídia Ltda, Rio de Janeiro, 2016.
Sites visitados
<https://www.docker.com/>.
22

Continue navegando