Notas
Docker - Volumes e Networking
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
- Avaliação