Após um longo periodo sem atualizações estou de volta para falar sobre algo muito interessante que na verdade ja deveria ter escrito aqui sobre isso a muito tempo. Como este é o primeiro post sobre Docker vou começar com a instalação e uso do Docker no ambiente de desenvolvimento e em posts futuros vamos falar sobre algumas ferramentas e o uso do Docker em ambiente de produção.
Vou demonstrar a instalação do Docker em uma maquina com OsX. A instalação é diferente de uma maquina com Linux mas o a execução e uso é parecido. Eu sempre instalo tudo utilizando o Homebrew então com o Docker não poderia ser diferente.
Vamos precisar instalar o Docker e o Docker Machine para quem utiliza OsX ou Windows o Docker Machine é obrigatório pois precisamos criar uma maquina aonde possamos rodar os comandos Docker. Apesar de não ser obrigatório o uso do Docker Machine no Linux você também pode usar ele. O Docker Machine não só nos permite criar hosts locais para o Docker como também na Amazon na Digital Ocean entre outros.
Instalando o docker e o docker-machine no OsX
brew install docker
brew install docker-machine
Agora criaremos um host utilizando o docker-machine para que possamos executar os comandos docker, criar nossos containers, imagens etc.
docker-machine create -d virtualbox mydockermachine
Este comando adiciona algumas informações ao profile. Estas informações informam ao docker em que host os comandos deverão ser executados
eval "$(docker-machine env dev)"
Abaixo um exemplo do profile da minha maquina.
DOCKER_HOST=tcp://192.168.99.100:2376
DOCKER_MACHINE_NAME=dev
DOCKER_TLS_VERIFY=1
DOCKER_CERT_PATH=/Users/fabianofrizzo/.docker/machine/machines/dev
Se executarmos o comando abaixo teremos a lista de maquinas criadas e também qual esta ativa.
docker-machine ls
Fazendo pull das imagens para criar os containers. Podemos simplesmente fazer o pull da ultima versão(latest) como também podemos informar qual versão gostariamos de fazer pull, para isto bastaria adicionar :{versão} logo após o nome da imagem que esta sendo feito o pull.
docker pull postgres
Criaremos o container docker apartir da imagem que baixamos no passo anterior.
docker run --name postgres -p 5432:5432 -e POSTGRES_PASSWORD={seu password} -d postgres
Um pouco sobre os parametros utilizados
- O parametro -p 5432:5432 é para redirecionar a porta do container para a maquina host
- O -d é para rodar o container em background
- O –name postgres define um nome para este container
- E o -e POSTGRES_PASSWORD={seu password} define a senha do usuário principal do postgres
Se tudo occoreu como o esperado quando for executado o comando docker ps deverá aparecer na lista um container com o nome postgres, para visualizar todos os containers mesmo os que não estão sendo executados use o comando docker ps -a. Se vocÊ precisar acessar o bash do seu container é possivel utilizando o comando exec. Com o comando exec é possível executar todos os comandos de um terminal linux você pode rodar ls, rm, etc.
docker exec -it postgres bash
O comando acima nos da acesso ao terminal do container postgres que criamos.
É possível parar e startar novamente o mesmo container com os comandos start e stop
docker stop postgres
docker start postgres
Excluir um container
docker rm postgres
Excluir uma imagem.
docker rmi postgres
Para ver todos os comandos disponíveis no docker execute docker help e para mais detalhes sobre cada comando docker help {comando}
Este é um post básico sobre o uso do docker, em posts futuros irei abortar outros comandos do docker e outras ferramentas como docker compose e o docker swarm, claro que ainda temos várias outras ferramentas de terceiros para utilizar em conjunto com o docker e tornar o uso muito dele mais prático.