Docker utiliza o LXC ou Libcontainer para criar containers leves que isolam processos. O Docker Hub permite compartilhar, pesquisar e baixar imagens de containers. Dockerfiles definem imagens usando comandos como FROM, RUN e EXPOSE. Containers são instâncias de imagens que podem ser iniciadas, pausadas e compartilhadas.
4. Hub de imagens
● Repositório central de Dockerfiles/images
– https://registry.hub.docker.com/
– Contas de usuário(criar convisoappsec?)
– Integrado com github
– Possibilidade de
● Compartilhar e pesquisar imagens
● Push image
● Pull image
5. Images
● Podemos comparar a um .iso de uma distro
● Entretanto:
– Hub registry
● Search, share, pull, push
– Trabalhar com herança de imagens
– Gerar tags de imagens baseado em outras imagens
– Gerar imagens a partir de um container com commits
– Reaproveitamento de espaço e processo de
build/deploy
– Possibilidade de salvar(save) e carregar
imagens(load) com tarballs
9. Containers
● Instalações/instancias de imagens
● Ambiente totalmente segregado, inclusive o
ambiente de rede(ip/rede própria)
● Possibilidade de diff(filesystem) entre
containers
● Realizar NAT de portas(port) host<>container
● Realizar linking entre containers, sem a
necessidade de NAT, com trafego cifrado
● Montar e compartilhar pastas entre containers
e host
10. Containers 2
● Possibilidade de pausar(pause) e
retornar(unpause) todos os processos sem perca
de estados
● Possibilidade de gerar snapshots(imagens) com
commits
● Rodar comandos(run), startar(start), stopar(stop) e
restartar(restart).
● Possibilidade de importar(import) e
exportar(export) os dados de um container em um
tarball
● Informações com os comandos: inspect, ps, logs