O GoConqr está de visual novo! Conte para nós o que você achou.

Notas

Docker - Volumes e Networking

Thiago Figueiredo Português 13 páginas

Conteúdo das notas (13)

Página 1

Preenchendo um volume usando um container

# docker run -d -it --name=teste --mount source=nginx-vol,destination=/usr/share/nginx/html nginx:latest

Esse container foi levantado criando um volume que aponta para a pasta origem (source), que recebe todos os arquivos da pasta destino (destination), onde, caso tenha algum outro container que tambem compartilha do volume cujo source aponta para esete mesmo, ambos terão os mesmos aquivos, simulando um compartilhamento

Página 2

Usando volumes somente leitura

# docker run -d -it --name=teste --mount source=nginx-vol,destination=/usr/share/nginx/html,readonly nginx:latest

Levanta um container com volume no modo somente leitura (RW = false), ou seja, LÊ mais não GRAVA/ALTERA

Página 3

Usando montagens de ligação

# docker run -d -it --name teste --mount type=bind,source="$(pwd)"/teste,target=/app nginx:latest

Bind Mount

Volume fica no filesystem do host, não necessariamente na área do Docker.

O uso perfomático e consistente depende muito da estrutura de diretório do host

Página 4

Usando montagens de ligação somente leitura

# docker run -d -it --name teste --mount type=bind,source="$(pwd)"/teste,target=/app nginx:latest

O container acessa o volume, porém não faz alteração no volumeom oum todo, ou seja, não cria, deleta ou altea arquivos ou pastas.

Página 5

Usando volumes temporários

# docker run -d -it --name teste --mount type=tmpfs,destination=/app nginx:latest

Fica alocado na memória virtual do container.

Não podem ser compartilhadas entre containers.

Só funciona em containers Linux.

Página 6

Introdução à redes no Docker

Ao instalar o Docker, ele cria 3 redes integradas automaticamente.

Para acessar ou listar as redes: # docker network ls

Para especificar em qual rede o container deve se conectar: # docker --network

O objetivo da rede none é adicionar um container a uma pilha de rede específica para o container.

O objetivo da rede host é adicionar um container na pilha de rede do host. Não existe isolamento entre a maquina host e o container no Docker. As redes none e host não são diretamentes configuradas no Docker, mas pode ser possível configuar a rede bridge ou as suas próprias redes.

O objetivo da rede bridge, é conectar automaticamente os container levantados palo Docker nela mesma, caso não seja informada uma outra rede. É uma rede configurável.

Por padrão, os containers levantados na rede bridge, podem se comunicar entre si atravé dos seus endereços IP´s.

O Docker não suporta descoberta de serviço automática na rede bridge padrão. Para resolver endereço IP´s através do nome do container, tem que se usar redes definidas pelo usuário.

Página 7

Docker GW Bridge

# docker network create --subnet 172.30.0.0/15 --opt com.Docker.network.bridge.name=docker_gwbridge --opt com.Docker.network.bridge.enable_icc=false dockerteste

Rede gateway é uma rede bridge local, automaticamente criada pelo Docker, quando se inicializa ou se junta a um Docker Swarm ou quando nenhuma da redes do container possa fornecer conectividade externa.

Docker usa essa rede para comunicação entre os nós do swarm em diferentes hosts.

Página 8

Redes definidas pelo usuário

# docker network create -driver bridge testenetwork

# docker network inspect testenetwork

# docker network ls

# docker run -itd --name=teste --network=testenetwork nginx

# docker network inspect testenetwork

Usado para controlar quais containers podem se comunicar entre si e também habilitar resolução dns automática de nomes de containers para endereços ip´s.

Dentro de uma rede bridge definida pelo usuário, o link não é suportado.

Página 9

Redes de sobreposição

# docker network create --driver overlay testenome

# docker network ls

# docker network inspect testenome

e criada no scopo swarm, indicando que apenas hosts que aprticipam do swarm possam acessar essa rede. A subrede e o gateway são configurados de forma dinâmica quando o serviço se conectar a essa rede pela primeira vez.

O Docker swarm gera dois tipos de tráfegos diferentes: controle de gerenciamento (sempre criptografado); controle de dados da aplicação;

Redes de sobreposição (overlay): gerencia a comunicação entre os daemons do Docker que participam de um cluster do swarm. Podem ser criadas da mesma forma que se cria redes do usuário. Um serviço pode ser anexado a uma ou mais rede de sobreposição existente, habilitando assim, cominicação de serviço à serviço.

Rede de entrada (ingress): também é uma rede de sobreposição. Rede de sobreposição especial que facilita o balanceamento de cargas entre os nós de um serviço.

Página 10

Anexando um serviço a uma rede de sobreposição

# docker service create --replicas 2 --name nometeste --network redeteste nginx:latest

# docker service ls redeteste

Página 11

Expondo e publicando portas

# docker run -itd -p 80 nginx

# docker run -itd -p 80:80 nginx

É uma maneira de documentar quais portas são usadas, mas não mapeia ou abre portas.

E exibição deportas é opcional.

Quando uma porta é publicada, ela é mapeada para uma porta de alta qualdiade de disponibildiade e superior a 30000 na máquina host, a não ser que se expecifique uma prota.

No Dokcer existem dois mecanismos diferentes que envolvem diretamente porta de rede: expor e publicar portas.

Página 12

Usando servidor proxy

Editar o arquivo: .docker/config.json

{

"proxies": {

"default": {

"httpProxy": "http://127.0.0.1:3001"

}

}

}

Página 13

Trabalhando com comandos de rede

# docker network connect nomerede idnomecontainer

# docker network disconnect nomerede idnomecontainer

# docker inspect nomerede

# docker network ls

# docker netowork rm nomerede

Informações

Descrição
Teoria Docker
Criado por
Thiago Figueiredo · fev 2020
Atualizado
3 fev 2020
Visualizações
0
Tags
docker
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?