Docker é uma tecnologia de contêiner criado pela empresa Docker Inc. Sendo um elemento de isolamento usado no sistema operacional para executar a imagem de outro sistema operacional.
-
O Docker é open source e tem uma grande comunidade.
-
Trabalha entre o Kernel e as aplicações
-
Docker não é maquina virtual pois não virtualiza hardware
-
Imagens compartilhada entre maquinas e pessoas resolvendo o problema de dependency hell.
-
Docker hub um grande repositório de imagens Docker
-
Imagem: Informação do OS
-
Contêiner: Imagem rodando
-
Volume: Maneira para compartilhar arquivos entre contêineres
Para compartilhamento de imagem Docker Nem todas são seguras Mais também a imagem oficiais que passam pelo crivo.
- Debian:
apt install docker.io
- Gentoo:
emerge app-emulation/docker
docker pull <repositorio do docker hub>[:tag da imagem]
As tag podem ser visualizadas no docker hub
docker images
ou docker image ls
docker run -ti [--name<name>] <image_id> /bin/bash
t
de tty
i
de interativo
docker container ls
docker attack <id>
As vezes esse comando é meio complicado, por que o contêiner pode estár rodando uma aplicação no terminal e tu já cai nela diretamente
Prefiro este:
docker exec -it <id> <programa>
no caso /bin/bash
docker ps
docker rename <id> <novonome>
docker rm <id>
docker rmi <id>
É possível com um contêiner docker rodando criar uma imagem
docker commit <container_id> <repositorio>[:tag]
docker cp <path do host> <id-container:path>
Não é possivel mover arquivos entre contêiner!! Ou passa pela rede ou pelo host
docker container prune
docker system prune -a
Para dar alguns recursos a mais de kernel
Passar a tag --privileged
`docker save <image_id> > nome.tar
docker load < nome.tar
docker export <id> > <aquivo.tar>
cat <arquivo.tar> | docker import -<nome>[:<tag>]
Docker volumes é uma forma de compartilhar uma pasta entre o host e o contaier ou até mesmo entre host container e outro container
criando um volume:
docker volume create <nomedovolume>
a tag é -v
ou seja docker run -e <pastahost>:<container>
é o sistema de arquivos recomendado para utilizar com docker por utilizar a tecnologia copy on write
Conclui-se que o Docker é uma ferramenta leve fácil de usar e que resolve a maioria dos problemas de dependencia facilitando assim o compartilhamento de ambientes de produção ou desenvolvimento.